我在两台机器上运行 Rails,但是 to_time
方法得到了不同的结果。我只检查了系统时区和 Time.zone
配置,我是否遗漏了什么?谢谢
服务器 1
user@Server1:/var/www/app$ date
Wed Oct 23 23:56:35 MDT 2013
user@Server1:/var/www/app$ cat /etc/timezone
America/Denver
user@Server1:/var/www/app$ bundle exec rails c production
irb(main):011:0> Time.zone
=> (GMT+00:00) UTC
irb(main):012:0> Date.parse("10/24/2013").to_time
=> 2013-10-24 00:00:00 +0000
服务器 2
user@Server2:/var/www/app$ date
Thu Oct 24 00:03:28 MDT 2013
user@Server2:/var/www/app$ cat /etc/timezone
America/Denver
user@Server2:/var/www/app$ bundle exec rails c production
irb(main):002:0> Time.zone
=> (GMT+00:00) UTC
irb(main):003:0> Date.parse("10/24/2013").to_time
=> 2013-10-24 00:00:00 -0600
最佳答案
Time#local_time
(在 Date#to_time 的实现中由 ActiveSupport 调用)遵循 TZ
环境变量,时区应该用于“本地”时间。
确保两台服务器的环境相同。
关于ruby-on-rails - 具有相同 Time.zone、相同服务器时区但从 Date.to_time 获得不同结果的两个 Rails 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19559385/