我知道有很多方法可以使用Ruby将本地时间转换为UTC时间,但是当时间和区域是单独的数据时,我不知道如何做到这一点。如果我有类似“12:00 PM -0500”的内容,我可以使用.getutc()
轻松将其转换为UTC。但是,如果我有“12:00 PM”和“Eastern Time(US& Canada)”怎么办?如何将这两者结合起来找到UTC时间?
答案 0 :(得分:3)
DateTime :: parse方法可能就是你要找的东西。
x = DateTime.parse("12:00 PM Eastern Time (US & Canada)")
将返回
的结果#<DateTime: 2017-11-15T12:00:00-05:00 ((2458073j,61200s,0n),-18000s,2299161j)>
从那里,有很多方法可以将时间转换为UTC。例如,
utc = x.new_offset(0)
将返回
的结果#<DateTime: 2017-11-15T17:00:00+00:00 ((2458073j,61200s,0n),+0s,2299161j)>
答案 1 :(得分:0)
如果您使用的是Rails,或者您不介意需要ActiveSupport,则可以使用ActiveSupport :: TimeZone来执行此操作。
>> time_zone = "Eastern Time (US & Canada)"
>> time_without_zone = "12:00 PM"
>> ActiveSupport::TimeZone[time_zone].parse(time_without_zone)
#=> Wed, 15 Nov 2017 12:00:00 EST -05:00