Rails 以 GMT 存储日期时间,尽管它被转换为本地时间



我的MySQL以GMT格式存储日期时间戳,尽管服务器的时间在美国东部标准时间。 在添加到MySQL之前,我将我的日期时间转换为本地(服务器的日期时间EST),但它将其存储在GMt而不是EST。这是怎么回事?

item.update_attributes({:request_datetime => Time.parse(date+" "+time+" "+timezone).localtime}) # this becomes EST
puts Time.parse(date+" "+time+" "+timezone).localtime.to_s # prints correct time zone, EST.
mysql> SELECT request_datetime,NOW(),TIMESTAMPDIFF(MINUTE,request_datetime,NOW()) FROM items Where item='2542';
+---------------------+---------------------+----------------------------------------------+
| request_datetime    | NOW()               | TIMESTAMPDIFF(MINUTE,request_datetime,NOW()) |
+---------------------+---------------------+----------------------------------------------+
| 2012-05-05 22:30:02 | 2012-05-05 18:30:05 |                                         -239 |
+---------------------+---------------------+----------------------------------------------+
1 row in set (0.00 sec)
mysql>
默认情况下,

Rails 将所有时间存储在 UTC/GMT 中,并根据需要将其转换为本地时间,这使得无论您的服务器如何,都可以更轻松地获取正确的时间,或者允许您基于每个用户建立时间。

将以下内容添加到application.rb作品

config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = 'Eastern Time (US & Canada)'

相关内容

  • 没有找到相关文章

最新更新