gpt4 book ai didi

ruby-on-rails - 如何在特定时区(最好是我的应用程序的默认时区,而不是 UTC)中创建新的 DateTime 对象?

转载 作者:行者123 更新时间:2023-12-03 08:38:50 26 4
gpt4 key购买 nike

我在 /config/application.rb 中设置了时区,我希望我的应用程序中生成的所有时间默认都在这个时区,但是当我创建一个新的 DateTime 时对象(使用 .new ),它在 GMT 中创建它.我怎样才能让它在我的应用程序的时区?

/config/application.rb

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

irb
irb> DateTime.now
=> Wed, 11 Jul 2012 19:04:56 -0700

irb> mydate = DateTime.new(2012, 07, 11, 20, 10, 0)
=> Wed, 11 Jul 2012 20:10:00 +0000 # GMT, but I want PDT

使用 in_time_zone不起作用,因为这只是将 GMT 时间转换为 PDT 时间,这是错误的时间:
irb> mydate.in_time_zone('Pacific Time (US & Canada)')
=> Wed, 11 Jul 2012 13:10:00 PDT -07:00 # wrong time (I want 20:10)

最佳答案

您可以使用 ActiveSupport 的 TimeWithZone ( Time.zone ) 对象以在您的应用程序的时区中创建和解析日期:

1.9.3p0 :001 > Time.zone.now
=> Wed, 11 Jul 2012 19:47:03 PDT -07:00
1.9.3p0 :002 > Time.zone.parse('2012-07-11 21:00')
=> Wed, 11 Jul 2012 21:00:00 PDT -07:00

关于ruby-on-rails - 如何在特定时区(最好是我的应用程序的默认时区,而不是 UTC)中创建新的 DateTime 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11444164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com