ruby-on-rails - Rails : How do I get created_at to show the time in my current time zone?

标签 ruby-on-rails datetime time

似乎在创建对象时,时间不正确。您可以通过下面的脚本/控制台输出查看。有没有人遇到过这样的事情,或者有任何调试技巧?

 >> Ticket.create(...)
=> #<Ticket id: 7, from_email: "foo@example.com", ticket_collaterals: nil, to_email: "foo2@example.com", body: "hello", subject: "testing", status: nil, whymail_id: nil, created_at: "2009-12-31 04:23:20", updated_at: "2009-12-31 04:23:20", forms_id: nil, body_hash: nil>
>> Ticket.last.created_at.to_s(:long)
=> "December 31, 2009 04:23"
>> Time.now.to_s(:long)
=> "December 30, 2009 22:24"

最佳答案

这是时区问题。当rails以UTC报告时间时,Time.now会在您本地的时区打印时间。看到config/environment.rb,它将有config.time_zone = "UTC"

>> Ticket.create(...)
>> Ticket.last.created_at.utc
=> Thu, 31 Dec 2009 04:41:58 UTC +00:00
>> Time.now.utc
=> Thu Dec 31 04:42:18 UTC 2009
>> Time.now
=> Wed Dec 30 20:44:50 -0800 2009

您可以在environment.rb中设置TimeZone以避免混淆。
# config/environment.rb
config.time_zone = "Central Time (US & Canada)"

关于ruby-on-rails - Rails : How do I get created_at to show the time in my current time zone?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1983937/

相关文章:

ruby-on-rails - 我应该把 key 放在我的 Rails 应用程序的什么地方?

ruby-on-rails - 如何使用 git 复制 rails 应用程序并部署到 heroku

azure - 本地计算机上的日期时间与 Azure 不同

python - 查找多个 datetime.timedelta 对象的最小公倍数

r - 估计 R 执行时间

parsing - 如何解析golang时间

ruby-on-rails - Ruby 正则表达式 : 1-2 digits required after period if period is present

sql - Rails 3.2 : Ordering a has_many :through selection, 当直通模型具有 default_scope 时

c# - 此值是否为有效年份 C#

mysql - 检测日期是否在 MySql 中的夏令时