慢性病是否有24小时的时间设置?

时间:2013-01-31 21:42:31

标签: ruby gem chronic

我偶然发现使用慢性宝石的一个有趣的(并且有时令人费解)。

解析字符串1/21/13 2:20

Chronic.parse('1/21/13 2:20')
=> 2013-01-21 14:20:00 -0800

但是,如果0前面有2

Chronic.parse('1/21/13 02:20')
 => 2013-01-21 02:20:00 -0800

现在,我可以将AM或PM放在字符串的末尾,这基本上会覆盖这种行为(所以前导0是否存在并不重要),但这显然是一个额外的步骤解析,并否定使用慢性的许多优点。还有另一种方法可以恰当地处理这个领先的零问题吗?让我措手不及的是,这还没有被弄清楚。

我应该注意,我需要解析的字符串可能是上面两个例子中的任何一个。

1 个答案:

答案 0 :(得分:1)

好吧,你可以减去12个小时:

time = Chronic.parse('1/21/13 2:20')
time -= - 12 * 60 * 60 if time.hour >= 12
#=> 2013-01-22 02:20:00 0800