2016-08-23 35 views
1

我想解析python 2.7中的人類術語,如3 days ago以獲得等效的timedelta。解析人類可讀的相對時間

例如:

>>> 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

您可以指定RELATIVE_BASE設置:

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

謝謝。我查看了readthedocs頁面,但該特定功能沒有明確記錄。 – ChrisGuest

相關問題