我正在尝试打印两个日期之间的大致时差。在这里回答得非常好的问题:Format timedelta to string给出了几个答案,我可以使用其中一个来解决我的问题。
但是,我真的很喜欢这种humanize
方法。不幸的是,我无法让它工作,因为文档minimum_unit
中列出的关键字参数给了我一个错误:
import datetime as dt
import humanize as hum
d1=dt.datetime(2003,3,17)
d2=dt.datetime(2007,9,21)
hum.naturaldelta(d2-d1, minimum_unit="days")
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-49-238c3a390a42> in <module>()
3 d1=dt.datetime(2003,3,17)
4 d2=dt.datetime(2007,9,21)
----> 5 hum.naturaldelta(d2-d1, minimum_unit="days")
TypeError: naturaldelta() got an unexpected keyword argument 'minimum_unit'
注意:该months=True
参数没有帮助,因为当差值低于一年时,它仅强制 timedelta 以月而不是天为单位返回。
任何想法我做错了什么?(如果这是不可能的,那么我将使用一些解决方法。)
编辑:
我正在使用https://colab.research.google.com/drive/,它似乎运行 Python "3.7.10 (default, Feb 20 2021, 21:17:23) [GCC 7.5.0]"
编辑/解决方案:
对不起,我很愚蠢,但我会留下这个问题。如果有人想删除它,没有异议。MrFuppes 的评论帮助我意识到这主要是由于谷歌没有使用当前版本。确实,在检查之后pip list
,我看到只安装了 0.x 版本,而 3.x 是最新的。运行后,pip install humanize --upgrade
我能够使用precisedelta
接受的答案中建议的功能。