1

(卡在 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课堂,在哪里相当于询问我的当地时间而不指定确切的(并且可能是不正确的时区)?

4

0 回答 0