У меня есть поле в моей таблице как «start_time» как строка. Например, значение «2014-02-07T02:00:00Z
». Это обеспечивается API. Мы хотим показать это время в соответствии с часовым поясом клиента (май EST, Central, IST, Pacific time). Для тестирования В моей системе я установил часовой пояс (водоприемников Time (США & Канады)) Я попыталсяОт строки до другого часового пояса, не работающего в рубине
start_at = "2014-02-07T02:00:00Z"
start_time = Time.parse(start_at.chop!)
gm_start_time = Time.gm(start_time.strftime('%Y'), start_time.strftime('%b'), start_time.strftime('%d').to_i, start_time.strftime('%H'), start_time.strftime('%M'), start_time.strftime('%S'))
event_start_time = gm_start_time.localtime.strftime('%m/%d/%Y %H:%M')
Result as:
2014-02-07 02:00:00 -0500 ==> start_time
2014-02-06 21:00:00 -0500 ==> gm_start_time
"02/06/2014 21:00" ==> event_start_time
Вот я пытаюсь это
- преобразовать строку в объект времени
- Преобразование что время по Гринвичу
- От GMT пытается найти эквивалент "сумасшедшая ltime"
Если центральное время составляет 2014-02-07T02: 00: 00Z, то местное время должно быть 2014-02-07T03: 00: 00Z
Почему я получаю 6 февраля 21 час. Это -5 часов от ожидаемого результата. Мой часовой пояс также - 5 часов.
(время составляет 24 часа формат)
Кто-нибудь есть какие-либо идеи о том, что я делаю неправильно?
'gm = Time.parse (start_at.chop!). Utc' –