(Застрял в земле Ruby 1.8.6)
До недавнего времени я использовал Время, чтобы анализировать даты UTC и печатать их в местном часовом поясе
dt = Time.parse("20111225080000Z")
puts dt.localtime
Sun Dec 25 21:00:00 +1300 2011
puts dt.zone
"New Zealand Daylight Time"
К сожалению, ограничения 1901 и 2034, наконец, помешали, и поэтому я попытался использовать DateTime
dt = DateTime.parse(date)
Но я не могу найти эквивалент .localtime
dt.timezone is of course +00:00
DateTime.now().zone is +13:00
Я решил воспользоваться этим, но понял, что если преобразованная дата НЕ была в летнее время, ответ был бы неправильным. Обратите внимание, что класс Time
получает его правильно и преобразует время в localtime
(не конкретный часовой пояс или смещение) - midwinter => Standard time.
dt = Time.parse("20110725080000Z")
puts dt.localtime
Sun Jul 25 21:00:00 +1200 2011
puts dt.zone
"New Zealand Standard Time"
Для класса DateTime
где эквивалент запроса моего местного времени без указания точного (и, возможно, неправильного часового пояса)?