Rails timezone activerecord

bra*_*r19 1 ruby timezone ruby-on-rails

我的application.rb:

config.time_zone = 'Moscow'
config.time_zone = "(GMT+04:00) Moscow"
config.active_record.default_timezone = 'Moscow'
config.active_record.default_timezone = :local
Run Code Online (Sandbox Code Playgroud)

当我运行此命令时,我得到:

1.9.3-p362 :001 > Time.now
 => 2013-02-14 14:18:42 +0400
1.9.3-p362 :002 > Time.zone.now
 => Thu, 14 Feb 2013 10:18:52 UTC +00:00
Run Code Online (Sandbox Code Playgroud)

所以在db我看10:18:52 UTC +00:00.但是如何配置,以及如何在Time.Now中看到这样的时间?(当我向db插入新行时,我必须看时间,如Time.now所示,配置什么?)

服务器的时间是莫斯科......

db也是mysql

Ale*_*eks 5

你可以使用这样的当地时间:

> current_time = Time.now.utc
  => 2013-02-14 15:15:58 UTC 
> current_time .localtime
  => 2013-02-14 10:15:58 -05 hours
Run Code Online (Sandbox Code Playgroud)

你也可以使用:

Time.now.utc.in_time_zone("Moscow")
Run Code Online (Sandbox Code Playgroud)

但是对于你的问题的答案,解决方案可能是这样设置:

config.time_zone = 'Moscow' (don't set this - delete this line)
config.active_record.default_timezone = :local
Run Code Online (Sandbox Code Playgroud)

您也可以使用当地时间:

Time.local_time
Run Code Online (Sandbox Code Playgroud)

我希望其中一些方法可以帮到你