1

我有一个代表日期时间的字符串。例如:

“2013-10-29T08:30:00”

没有时区信息,但我知道它代表特定时区的时间,例如“中部时间(美国和加拿大)”

我想DateTime用正确的时区信息创建一个正确的对象,但我没有这样做,因为我不知道我应该使用“-06:00”还是“-05:00”作为偏移量(由于 DST) .

有什么帮助吗?

4

1 回答 1

3

完全不用担心 DST :) ActiveSupport 会为您解决这个问题。

Time.zone = "Central Time (US & Canada)"

t = Time.zone.parse "2013-10-29T08:30:00"
#=> Tue, 29 Oct 2013 08:30:00 CDT -05:00

t.dst?
#=> true

参考时区设置和dst? http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html

更新:上面的块是为了展示目的。在应用程序中,您可以将时区设置为config/application.rb

config.time_zone = 'Central Time (US & Canada)'

这将设置默认值Time.zone,因此您不再需要上述代码的第一行。

于 2013-10-29T14:51:36.890 回答