我设置了时区。
config.time_zone = 'Mountain Time (US & Canada)'
从控制台创建圣诞节活动...
c = Event.new(:title => "Christmas")
使用时间:
c.start = Time.new(2012,12,25)
=> 2012-12-25 00:00:00 -0700 #has correct offset
c.end = Time.new(2012,12,25).end_of_day
=> 2012-12-25 23:59:59 -0700 #same deal
使用日期时间:
c.start = DateTime.new(2012,12,25)
=> Tue, 25 Dec 2012 00:00:00 +0000 # no offset
c.end = DateTime.new(2012,12,25).end_of_day
=> Tue, 25 Dec 2012 23:59:59 +0000 # same
我一直在粗心地使用 DateTime 认为输入被假定在 config.time_zone 但是当它被保存到数据库时没有转换。它的存储方式与返回值相同(为 db 格式化)。
使用 Time 真的没什么大不了的,但我是否需要在使用 DateTime 的任何时候手动偏移并希望它位于正确的区域?