Преобразование часового пояса для DateTime в Ruby 1.8.6 - PullRequest
1 голос
/ 12 декабря 2011

(Застрял в земле 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 где эквивалент запроса моего местного времени без указания точного (и, возможно, неправильного часового пояса)?

...