解析人类可读的相对时间

时间:2016-08-23 03:42:01

标签: python time

我想在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小时)。

是否有更好的模块可以解析人类可读的相对时间?

1 个答案:

答案 0 :(得分:1)

您可以指定RELATIVE_BASE设置:

>>> now = datetime.datetime.now()
>>> res = dateparser.parse('3 days ago', settings={'RELATIVE_BASE': now})
>>> now - res
datetime.timedelta(3)