获取没有字符串操作的时间字符串的UTC偏移

时间:2016-10-25 15:32:19

标签: ruby time

我有一个如下所示的时间字符串:time = "7:00 PM -0500"

这个偏移显然是-0500,我可以通过utc_offset = time[-5..-1]

来实现

但是,我希望使用现有的Ruby Time功能,而不是使用字符串操作。

这需要适用于所有时区,因此我无法在任何地方对时区或偏移进行硬编码。如何使用"<hour>:<minutes> <am/pm> <offset>"格式的字符串,解析它,并使用Time类中的功能获取正确的偏移量?

1 个答案:

答案 0 :(得分:0)

也许,this下次应该帮助你,为此你的问题可能的答案是:

require 'time'
time = "7:00 PM -0500"
Time.parse(time).strftime "%z"
 => "-0500" 

<强> UPD

如果Time.parse只返回您当地的时区(在某些ruby版本中),您也可以尝试这样做:

require 'time'
time = "7:00 PM -0500"
DateTime.parse(time).strftime "%z"
=> "-0500"