Time.use_zone('Pacific Time (US & Canada)') do
p Time.zone.now
end
我得到如下:=> Sun, 14 Apr 2013 20:30:53 PDT -07:00
时区的困惑(1小时关闭)
然而,当我做Rails的时区选择....它说-8:00
很清楚。为什么在一个区域-7和另一个区域-8?
其他时间,如Hawaii
这是-10:00
时区不会抵消一个小时。
我想这已经是与DST,但我更好奇是否就意味着它的工作正常或不当并没有别的东西我需要做的。
最终我在日期选择器中使用这个,我觉得很奇怪,当我使用Time.zone.parse
(以及我的时区周围的过滤器)时,它将所有东西都抵消了1小时。
感谢
编辑
继承人类似的问题我也刚刚经历与另一段代码
2.0.0-p0 :006 >
2.0.0-p0 :006 > u.meetups.in_future.first.meetup_time
Meetup Load (0.4ms) SELECT `meetups`.* FROM `meetups` WHERE `meetups`.`user_id` = 1 AND (meetup_time >= '2013-04-23 04:46:48') ORDER BY meetup_time ASC LIMIT 1
=> Tue, 23 Apr 2013 05:43:00 UTC 00:00
2.0.0-p0 :007 >
请注意,在结果的差异相比,where子句。
编辑
这似乎为CST正常工作,但PST是关闭的〜1小时?我觉得这都是同样的问题,我只是想念一个难题。
简单的问题:你是否证实你的机器和SQL DB使用相同的时区信息?这真的只会导致数据库(可能)的问题? – 2013-04-23 05:03:04
我确定我的Rails应用程序时区是UTC,并且我在ApplicationController中还有一个around_filter,用于说明在选择下拉列表中选择的用户时区 – st0rk 2013-04-23 05:04:39
我对SQLite不够熟悉(假设您使用的Rails默认dev DB)知道它是使用系统时区还是它自己的。但是MySQL有一个时区配置可以不同于那个(它应该是不同的)会导致时间以这种奇怪的方式抵消的机器。只是好奇,如果你检查了。 – 2013-04-23 05:06:32