我想解析诸如3 days agoin之类的人类术语python 2.7以获得等效的 timedelta 。
例如:
>>> relativetimeparer.parser('3 days ago')
datetime.timedelta(3)
Run Code Online (Sandbox Code Playgroud)
我已经尝试过该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)
Run Code Online (Sandbox Code Playgroud)
它直接解析相对时间,datetime而不选择返回timedelta. 它还似乎认为3天前实际上是3天零10小时前。所以它似乎也调用了我与格林威治的时区偏移(+10 小时)。
是否有更好的模块来解析人类可读的相对时间?
您可以指定RELATIVE_BASE设置:
>>> now = datetime.datetime.now()
>>> res = dateparser.parse('3 days ago', settings={'RELATIVE_BASE': now})
>>> now - res
datetime.timedelta(3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2052 次 |
| 最近记录: |