Rails:Hack Time.Now别名Time.current

时间:2012-12-27 05:04:54

标签: ruby-on-rails ruby activerecord timezone

我刚刚将我的应用程序更改为使用PST时区。但是,我的很多应用程序都有使用Time.now的代码,但仍然停留在UTC中:

irb(main):012:0> Time.now
=> 2012-12-27 05:03:16 +0000
另一方面,

Time.current似乎有正确的时区用法:

irb(main):013:0> Time.current
=> Wed, 26 Dec 2012 21:03:42 PST -08:00

而不是通过我的整个应用程序并更改Time.now的每个实例,以某种方式别名Time.now使用Time.current而不是有意义吗?有没有更好的方法在我的应用程序中处理这个,所以我不必修改我使用Time.now的任何地方,因为它没有使用我的应用程序配置的时区?

2 个答案:

答案 0 :(得分:4)

从我的角度来看,应该避免使用这种猴子补丁:使用'替换所有路径'Time.now =>在几乎任何一个编辑器中,Time.current都不是很难做到,但是你可以节省你的调试时间,以便在第三方或与你一起工作同一个项目的人中找到一些奇怪的错误。

答案 1 :(得分:0)

如果您使用的是ubuntu,请尝试使用perl

查找/替换
perl -pi -e 's/Time\.now/Time\.current/' *