`
netfork
  • 浏览: 480551 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

注释掉了config.time_zone = 'UTC'

    博客分类:
  • Ruby
阅读更多

原来在rails 2.0.2下搞程序,时间都是对的,用了rails 2.3.2后,由于时间格式化一直用的是nice形式的时间格式(刚刚、XX分钟前、XX小时前),没注意到时间实际上是8小时前的时间,今天突然发现数据库里每条记录的时间竟然是8小时前的。。。吃惊不小。

 

查了一下,有篇翻译的文章写的挺全的:http://t0uch.iteye.com/blog/184194

原来是由于environment.rb文件中有个设定:config.time_zone = 'UTC'。

于是,赶紧去控制台执行:rake time:zones:local


 

立即把environment.rb中的config.time_zone设为:config.time_zone = 'Beijing',重启服务器,刷新网页,一切OK了,时间显示正常。

翻看数据库,发现表里的时间没变,还是UTC的时间,8小时前,这怎么行呢?

因为程序中有些地方不得不使用find_by_sql,而且中间会有时间比较条件,所以,绝不能用8小时前这种UTC时间,怎么办?

翻看原来的rails 2.0.2下的工程,发现其中的config.time_zone设定是被注释掉的,于时回到当前工程,将config.time_zone设定注释掉,重启服务器,刷新网页,插入一条记录,看看数据库,时间是当前系统时间,再看看页面,是直接取得数据库里存储的时间,哈哈,终于一切OK啦!爽!

 

PS.如果表中存在设定了UTC时区时的数据,在对这样的数据进行修改时,updated_at不会自动更新。

 

 

 

  • 大小: 2 KB
分享到:
评论
7 楼 netfork 2009-08-31  
jinleileiking 写道
5B用的爽么

不错。大学期间最重要的收获之一。
6 楼 jinleileiking 2009-08-31  
5B用的爽么
5 楼 Hooopo 2009-08-25  
netfork 写道
Hooopo 写道
原来如北

又发现一个用五笔的。。。

偶是用搜狗装五笔的....
4 楼 netfork 2009-08-25  
Hooopo 写道
原来如北

又发现一个用五笔的。。。
3 楼 Hooopo 2009-08-25  
原来如北
2 楼 netfork 2009-08-25  
受教了,多谢。
1 楼 wangxb_st 2009-08-25  
使用插件的时候也要注意这个问题,例如Restful_Authentication,这个插件里面使用时间(例如activated_at)都带有UTC,如果你不适用config.time_zone="UTC",那么也要把那些代码改过来。

相关推荐

Global site tag (gtag.js) - Google Analytics