我想在3 days ago
中解析python 2.7
等人类术语,以获得与时间相当的时间值。
例如:
>>> relativetimeparer.parser('3 days ago')
datetime.timedelta(3)
我尝试了dateparser
模块。
>>> import dateparser
>>> dateparser.parse('3 days ago')
datetime.datetime(2016, 8, 20, 2, 57, 23, 372538)
>>> datetime.now() - dateparser.parse('3 days ago')
datetime.timedelta(3, 35999, 999232)
它直接将相对时间解析为datetime
而无需返回timedelta
。它似乎也认为3天前实际上是3天10小时前。所以它似乎也在调用格林威治的时区偏移量(+10小时)。
是否有更好的模块可以解析人类可读的相对时间?
答案 0 :(得分:1)
您可以指定RELATIVE_BASE
设置:
>>> now = datetime.datetime.now()
>>> res = dateparser.parse('3 days ago', settings={'RELATIVE_BASE': now})
>>> now - res
datetime.timedelta(3)