W mojej bazie danych MySQL pole updated_at jest przechowywane jako UTC. W zeszłym tygodniu zapisano o 19:00 EDT, a jego wartość updated_at to "2012-08-01 23:00:00". Próbuję przekonwertować czas lokalny klienta WWW na UTC, który można porównać z polem updated_at w bazie danych.Konwersja czasu lokalnego do UTC w Railsach
Jako przykład, chciałbym zamienić "08/01/2012 19:00" na "2012-08-01 23:00:00" (co oznacza, że jestem w EDT), ale jestem brakuje aspektu strefy czasowej konwersji. "19:00" jest czasem lokalnym i może pochodzić z dowolnej strefy czasowej. Mój obecny kod:
ruby-1.9.2-head :015 > from_date = DateTime.strptime('08/01/2012 07:00 pm', '%m/%d/%Y %H:%M %p')
=> Wed, 01 Aug 2012 19:00:00 +0000
ruby-1.9.2-head :016 > from_date = Time.zone.parse(from_date.to_s).utc
=> 2012-08-01 19:00:00 UTC
Jakieś przemyślenia?
Edycja: Również mógłbym użyć "% Z" w moim wywołaniu strptime, ale to zakładając, że mam strefę czasową w wartości, której aktualnie nie mam. Sądzę, że mógłbym użyć Javascript do wysłania wraz z wartością daty/czasu.
Czy to byłby ty? http://stackoverflow.com/questions/4820819/how-to-convert-date-into-utc-in-ruby-rails – lcguida