如果zone是可选的,如何使用strptime解析日期

时间:2014-10-25 05:52:30

标签: ruby-on-rails ruby

我有"1/4/2013 3:39:41 PM"格式的日期时间字符串,我正在使用以下代码DateTime.strptime(s, '%d/%m/%Y %H:%M:%S %p')并且它有效。

但问题是当时间是在AM时,输入字符串没有' AM'当下。因此,当引用AM时,字符串就像"1/4/2013 3:39:41"。在这些情况下,我的解析日期代码会抛出错误

ArgumentError: invalid date
    from (irb):45:in `strptime'

如何在模板中设置%p可选项?

感谢

1 个答案:

答案 0 :(得分:0)

不是最佳解决方案,但您可以继续:

if s.split(' ').size == 3
   format = '%d/%m/%Y %H:%M:%S %p'
// you can implement further variations here...    
else 
   format = '%d/%m/%Y %H:%M:%S %p'

DateTime.strptime(s, format)