将created_at UTC转换为Eastern Time

时间:2015-02-13 02:41:52

标签: ruby-on-rails ruby

我的模型(默认情况下)在数据库中生成了一个“created_at”字段,用于存储以UTC格式插入数据库的行。

在我的控制器中,我从数据库中检索数据并尝试使用以下内容将值转换为东部时间:

data["created_at"] = data["created_at"].in_time_zone("Eastern Time (US & Canada)")

当我查看上面代码的输出时,看起来我的“created_at”值仍然是UTC而不是东部时间。有什么想法吗?感谢。

编辑: 要回答评论,当我检查来自数据库的created_at的值时,它的值是:2015-01-31 18:34:51

2 个答案:

答案 0 :(得分:1)

在application.rb中的配置中添加时区

config.time_zone = 'Eastern Time (US & Canada)'

它将使用utc保存db中的日期,但显示指定的时区

答案 1 :(得分:0)

时间戳仍然是时间戳。您只需指定一种可能的方式来显示它。

更有意义的是将其保留在数据库中的UTC(一个好的标准),并在显示时以任何有意义的方式对其进行本地化。

例如,对于我们编写的日志记录应用程序,将鼠标悬停在UTC时间戳上会根据系统中的用户配置文件为您自己提供本地化的时间戳。