(卡在 Ruby 1.8.6 土地上)
直到最近我还在使用 Time 来解析 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
(不是特定时区或偏移量)- 仲冬 => 标准时间。
dt = Time.parse("20110725080000Z")
puts dt.localtime
Sun Jul 25 21:00:00 +1200 2011
puts dt.zone
"New Zealand Standard Time"
对于DateTime
课堂,在哪里相当于询问我的当地时间而不指定确切的(并且可能是不正确的时区)?