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

Ruby 慢性病患者是否有24小时的时间设置?,ruby,gem,chronic,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/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
),但这显然是解析的额外步骤,并且否定了使用Chronic的许多优点。是否有另一种选择来适当处理这个领先的零问题?这件事还没有弄清楚,让我措手不及


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

好的,您可以减去12小时:

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

你可以减去12小时:

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

添加AM/PM如何否定使用慢性药物的优势?我认为最合理的做法是在gem上执行pull请求,以使行为一致。@SunnyJuneja它并不完全否定使用Chronic,但这是我端解析的额外步骤(字符串来自我无法控制的外部源)。然而,Chronic的整个想法似乎是为了避免像那样的笨拙解析。添加AM/PM如何否定使用Chronic的优势?我认为最合理的做法是在gem上执行pull请求,以使行为一致。@SunnyJuneja它并不完全否定使用Chronic,但这是我端解析的额外步骤(字符串来自我无法控制的外部源)。然而,慢性的整个想法似乎是为了避免像那样笨拙的解析。对于那些,我想你可以检查一下
time.hour!=str[/\d+(?=:)/].to_i
对于那些我想你可以检查一下
time.hour!=str[/\d+(?=:)/].to_i