1

我偶然发现了一个使用 Chronic gem 的有趣(并且暂时停止了令人费解的)行为。

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

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

但是,如果 a0位于 前面2

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

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

我应该注意,我需要解析的字符串可能是上述两种情况中的任何一种。

4

1 回答 1

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
于 2013-01-31T23:36:07.123 回答