相关疑难解决方法(0)

为什么`config.time_zone`似乎没有做任何事情?

application.rb,它说:

将Time.zone默认设置为指定区域,并将Active Record自动转换为此区域.运行"rake -D time"以获取用于查找时区名称的任务列表.默认为UTC.

但是设置config.time_zone = 'Central Time (US & Canada)'或者config.time_zone = 'Eastern Time (US & Canada)'没有效果 - created_at模型中的字段是以UTC格式保存的.

根据这个railsforum回答:

config.time_zone只是让rails知道你的服务器被设置为这个时区,所以当它将日期写入数据库时​​,它可以正确地将它转换为UTC.

如果这是真的,那么它为什么,当我的系统时间Pacific Time (US & Canada)config.time_zone = 'Central Time (US & Canada)'config.time_zone = 'Eastern Time (US & Canada)',该created_at时间是正确的UTC?它应该不正确吗?!

因为,如果PST时间是晚上8点,则EST是晚上11点,UTC是凌晨4点.假设Rails确实如此Time.now,那将是晚上8点.我们告诉Rails服务器在EST中.因此,就Rails而言,晚上8点将是EST时间,然后UTC将是UTC时间上午5点,这将是不正确的(因为实际时间是太平洋标准时间晚上8点/美国东部时间晚上11点,即UTC时间上午4点)

这里发生了什么?

ruby-on-rails ruby-on-rails-3

21
推荐指数
2
解决办法
2万
查看次数

标签 统计

ruby-on-rails ×1

ruby-on-rails-3 ×1