我正在尝试解析不同格式的日期列表:
dates = ['01:00pm 06/03/2015', '03:30pm 05/28/2015', '0900am 06/13/2015', '0300pm 06/02/2015', '0300pm06/02/2015', '03:30pm 28/01/2015']
这样的例子不胜枚举。本质上,我需要使任何日期和时间的意义,可以输入到一个文本字段。在这方面,我无法控制数据源。我能帮什么忙吗?一些巨大的正则表达式方法?
到目前为止,我有一个有效的日期方法检查,如下所示:
def valid_date(date)
Date.valid_date?(*date.split('/').reverse.map(&:to_i))
end
我想我应该首先拆分日期和时间,特别是因为有些人提交的数据没有空格。如何解决这个巨大的问题?
我推荐使用mojombo/chronic gem。但老实说,你有一个很难解决的问题。如果没有一个日期是结构化的,那么您实际上是在尽您最大的猜测来解析它。我不确定你的要求是什么,但我建议修改数据。使用慢性宝石,至少它能让你接近目标。你甚至可以写"this tuesday 5:00"
或"2 days ago"