Ruby:获取字符串的TimeZone组件

时间:2015-03-27 17:54:08

标签: ruby-on-rails ruby date datetime

我正在使用Ruby中的Date字符串,并希望确定字符串是否与时区一起传递(除了简单地解析文本之外)。如果没有提供时区,我想根据其他因素将其转换为某个时区。

示例:

DateTime.parse("2014-01-01T23:59:00")
=> #<DateTime: 2014-01-01T23:59:00+00:00 ((2456659j,86340s,0n),+0s,2299161j)>
DateTime.parse("2014-01-01T23:59:00Z")
=> #<DateTime: 2014-01-01T23:59:00+00:00 ((2456659j,86340s,0n),+0s,2299161j)>
DateTime.parse("2014-01-01T23:59:00PST")
=> #<DateTime: 2014-01-01T23:59:00-08:00 ((2456660j,28740s,0n),-28800s,2299161j)>

问题在于解析“2014-01-01T23:59:00”和“2014-01-01T23:59:00Z”(与祖鲁语)产生相同的结果,当一个指定“祖鲁”和另一个不是。我确定如果没有提供区域,默认行为是假设UTC。

1 个答案:

答案 0 :(得分:0)

要检查日期字符串是否以时区结束,您可以使用此正则表达式检查分钟和秒是字符串的结尾:\d{2}:\d{2}$

以下是使用debuggex来说明的一些示例:

\d{2}:\d{2}$

Regular expression visualization

Debuggex Demo