gpt4 book ai didi

ruby-on-rails - 在 Ruby 或 Rails 中,将东部时间转换为 UTC 的最佳方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:08 25 4
gpt4 key购买 nike

我不是指

myDateTime = DateTime.now
myDateTime.new_offset(Rational(0, 24))

Time.now.utc

我所拥有的是东部时间的文本日期。

我可以将该文本日期转换为 DateTime。我们称它为 eastern_date_time

现在,我们有一个包含 DateTime 的变量,但没有人知道它在我们之外的东部。自己转换它会非常繁重。如果日期采用夏令时 (DST)(今年 3 月 8 日至 11 月 1 日),我们必须将 4 小时添加到我们的 eastern_date_time 变量以获得 UTC,如果日期采用标准时间 (ST),我们将必须向我们的 eastern_date_time 变量添加 5 小时。

我们如何指定我们拥有的是东部日期时间,然后将其转换为 UTC...确定日期是否在 DST/ST 中并正确应用 4 或 5 小时的东西?

我想将我得到的任何类型的日期转换为 UTC,以便存储在我的数据库中。

编辑:

使用“in_time_zone”,我无法将我的东部文本时间转换为 UTC。我怎样才能实现这个目标?例如……

text_time = "Nov 27, 2015 4:30 PM" #given as Eastern
myEasternDateTime = DateTime.parse text_time # => Fri, 27 Nov 2015 16:30:00 +0000
#now we need to specify that this myEasternDateTime is in fact eastern. However, it's our default UTC. If we use in_time_zone, it just converts the date at UTC to Eastern
myEasternDateTime.in_time_zone('Eastern Time (US & Canada)') # => Fri, 27 Nov 2015 11:30:00 EST -05:00
myEasternDateTime.utc # => Fri, 27 Nov 2015 16:30:00 +0000

这不是我们想要的。我们必须指定 myEasterDateTime 实际上是东部时间...这样当我们在 16:30:00 执行 myEasterDateTime.utc 时,我们最终得到 20:30:00。

我怎样才能做到这一点?

最佳答案

有一个time_in_zone method in the DateTime class :

now.time_in_zone('UTC')

它已经是renamed to in_time_zone :

DateTime.now.in_time_zone('US/Pacific')
=> Wed, 22 Apr 2015 12:36:33 PDT -07:00

关于ruby-on-rails - 在 Ruby 或 Rails 中,将东部时间转换为 UTC 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29807048/

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