如何使用慢性自然语言日期/时间解析器解析“12:00”为12:00 PM?

时间:2009-09-16 23:08:40

标签: ruby time chronic

我使用ruby gem“Chronic”来解析四位数字符串作为DateTime对象。我正在使用军事格式的时间(即:“0800”),这似乎是从文件中有效的格式。

在大多数情况下,Chronic正确地以这种格式分析时间 - 但是总是解析以“12”开头的四位数字符串作为第二天的00:XX AM,而不是12:XX当天的PM。

例如:

>> Chronic.parse("1234")
=> Thu Sep 17 00:34:00 -0600 2009

我看到如果我在小时和分钟之间放一个冒号,我会得到所需的输出:

>> Chronic.parse("12:34")
=> Wed Sep 16 12:34:00 -0600 2009

但是我想要传递没有冒号的值,如下所示:

>> Chronic.parse("1234")
=> Wed Sep 16 12:34:00 -0600 2009

为了让Chronic将“1234”解释为当天下午12:34,我需要传递给解析器的字符串是什么?

1 个答案:

答案 0 :(得分:0)

我不确定,但看起来它可能是一个错误。我的猜测是你在代码的这个角落里结束了:

http://github.com/mojombo/chronic/commit/c7d9591acf5179345cbc916bd509c48acee8e744