Я ищу способ извлечь идентификатор дружественной зоны (например, CET, GMT или UTC) из экземпляра DateTime.Извлечение идентификатора часового пояса из экземпляра DateTime
Некоторые из моих неудачных попыток:
>> DateTime.current.zone
=> "+00:00" # Not what I want
>> Time.current.zone
=> "UTC"
>> DateTime.current.to_time.zone
=> "CET" # Uses system time instead of the one set in Rails config
Мне также удалось обнаружить, что если вы приводите экземпляр DateTime в определенной зоне, DateTime#zone
возвращает аббревиатуру я ищу, но не работает для uncast например:
>> DateTime.current.in_time_zone('America/Los_Angeles').zone
=> "PDT"
>> DateTime.current.zone
=> "+00:00
'Time.current.zone' - не то, что вы ищете? – MrYoshiji
В конце концов 'Time.zone', который« Возвращает TimeZone для текущего запроса. [...] Если 'Time.zone' не был установлен [...], возвращает TimeZone, указанный в' config.time_zone'. " (источник: http://api.rubyonrails.org/classes/Time.html#method-c-zone) – MrYoshiji
Вот что я решил, но представьте, что у вас есть экземпляр DateTime в определенный часовой пояс - вы можете 't затем используйте его Time.current.zone, так как это не будет часовой пояс, к которому применяется экземпляр DateTime. Но ваш ответ заставил меня найти частичное решение моей проблемы, спасибо. ;) –