parsedatetime显示数据范围?

时间:2011-12-22 17:01:36

标签: python datetime

我错过了什么,或者解析时间不是这样的日期范围:

"Next January" - 理想情况下应返回('Jan 1st 2012', 'Jan 31st 2012')

之类的内容

(sudo代码 - 显然是正确的python日期对象)

同样,

"Tomorrow"可能会返回('Dec 23rd 2011 00:00', 'Dec 23rd 2011 23.59')

之类的内容

我认为它可以将"Aug 24th - Sept 1st 2012"之类的内容解析为范围 - 我想知道它是否可以执行单个短语日期并将其解决?

或者,如果它可以告诉我它找到了什么日期/时间段 - 例如第一个例子的month,第二个例子的day

由于 盖

1 个答案:

答案 0 :(得分:4)

查看源代码我看到一些正则表达式,几乎可以解释可以解析哪种范围(我删除了一些处理语言环境的行):

# "06/07/06 - 08/09/06"
self.DATERNG1 = self.RE_RDATE + r'\s?%(rangeseperator)s\s?' + self.RE_RDATE

# "march 31 - june 1st, 2006"
self.DATERNG2 = self.RE_RDATE3 + r'\s?%(rangeseperator)s\s?' + self.RE_RDATE3

# "march 1rd -13th"
self.DATERNG3 = self.RE_RDATE3 + r'\s?%(rangeseperator)s\s?(\d\d?)\s?(rd|st|nd|th)?'

# "4:00:55 pm - 5:90:44 am", '4p-5p'
self.TIMERNG1 = self.RE_RTIMEHMS2 + r'\s?%(rangeseperator)s\s?' + self.RE_RTIMEHMS2

# "4:00 - 5:90 ", "4:55:55-3:44:55"
self.TIMERNG2 = self.RE_RTIMEHMS + r'\s?%(rangeseperator)s\s?' + self.RE_RTIMEHMS

# "4-5pm "
self.TIMERNG3 = r'\d\d?\s?%(rangeseperator)s\s?' + self.RE_RTIMEHMS2

# "4:30-5pm "
self.TIMERNG4 = self.RE_RTIMEHMS + r'\s?%(rangeseperator)s\s?' + self.RE_RTIMEHMS2

正如您所看到的,在所有正则表达式中都使用了一个分隔符来决定拆分字符串的位置,然后解析开始日期和结束日期。

因此,作为对您的问题的回答,目前无法将单个短语解析为当前实现的范围。