[英]Rails stores datetime in GMT though it is converted to local time
我的MySQL在GMT中存储日期时间戳,尽管服务器的时间在EST中。 在添加到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)'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.