Ema*_*gan 11 python python-dateutil relativedelta
我想以天为单位得出relativedelta的总持续时间.
预期:
dateutil.timedelta(1 month, 24 days) -> dateutil.timedelta(55 days)
Run Code Online (Sandbox Code Playgroud)
我尝试了什么:
dateutil.timedelta(1 month, 24 days).days -> 24 (WRONG)
Run Code Online (Sandbox Code Playgroud)
有一个简单的方法吗?谢谢!
这个也困扰了我.没有一种非常干净的方法来获得特定单位的时间跨度.这部分是因为日期范围依赖于单位.
relativedelta()几个月来争论不休.但是当你想到一个月有多长时间时,答案是"它取决于".随着中说,这是技术上不可能到转换relativedelta()直接向天,不知道该三角洲土地上天.
这就是我最终做的事情.
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
rd = relativedelta(years=3, months=7, days=19)
# I use 'now', but you may want to adjust your start and end range to a specific set of dates.
now = datetime.now()
# calculate the date difference from the relativedelta span
then = now - rd
# unlike normal timedelta 'then' is returned as a datetime
# subtracting two dates will give you a timedelta which contains the value you're looking for
diff = now - then
print diff.days
Run Code Online (Sandbox Code Playgroud)
简单的日期差异实际上可以做到这一点。
>>> from datetime import datetime
>>> (datetime(2017, 12, 1) - datetime(2018, 1, 1)).days
-31
Run Code Online (Sandbox Code Playgroud)
要获得正数,您可以交换日期或使用abs:
>>> abs((datetime(2017, 12, 1) - datetime(2018, 1, 1)).days)
31
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5165 次 |
| 最近记录: |