parsedatetime为早于当前月份的日期返回错误的年份

时间:2017-03-08 04:01:10

标签: python datetime web-scraping

import parsedatetime as pdt

c = pdt.Constants()
p = pdt.Calendar(c)
p.parseDateText('28 Feb 17') #Current date at runtime is Mar 7 2017

返回:

(2018, 2, 17, 21, 51, 22, 1, 66, 0)

所以我建立了一个webscraper来获取发布到几个感兴趣的网站的日历活动,并且他们的日期有各种非标准格式。我正在使用parsedatetime将自由文本日期转换为日历中更有用的日期。我刚刚意识到我遇到的问题是我已经发生过的事件。当问题解析日期的月份至少比当前日期早一个月时,我将问题缩小到开始,如上面的代码所示。

我可以做些什么来正确解析这些日期(它们不是所有格式如上所述)或以其他方式捕获它们以免它们错误地添加到我的谷歌日历中?

1 个答案:

答案 0 :(得分:1)

我建议使用dateparser库:

$ pip install dateparser

示例:

>>> import dateparser
>>> dateparser.parse('28 Feb 17')
datetime.datetime(2017, 2, 28, 0, 0)