我有一个代表日期时间的字符串。例如:
“2013-10-29T08:30:00”
没有时区信息,但我知道它代表特定时区的时间,例如“中部时间(美国和加拿大)”
我想DateTime
用正确的时区信息创建一个正确的对象,但我没有这样做,因为我不知道我应该使用“-06:00”还是“-05:00”作为偏移量(由于 DST) .
有什么帮助吗?
我有一个代表日期时间的字符串。例如:
“2013-10-29T08:30:00”
没有时区信息,但我知道它代表特定时区的时间,例如“中部时间(美国和加拿大)”
我想DateTime
用正确的时区信息创建一个正确的对象,但我没有这样做,因为我不知道我应该使用“-06:00”还是“-05:00”作为偏移量(由于 DST) .
有什么帮助吗?
完全不用担心 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
,因此您不再需要上述代码的第一行。