Rob*_*ark 2 python datetime timedelta relative-date python-dateutil
如何将 dateutil.relativedelta 对象转换为 datetime.timedelta 对象?
例如,
# pip install python-dateutil
from dateutil.relativedelta import relativedelta
from datetime import timedelta
rel_delta = relativedelta(months=-2)
# How can I convert rel_delta to a timedelta object so that I can call total_seconds() ?
time_delta = ???(rel_delta)
time_delta.total_seconds() # call the timedelta.total_seconds() method
Run Code Online (Sandbox Code Playgroud)
你不能,有一个很大的原因:它们不存储相同的信息。 datetime.timedelta只存储天、秒和毫秒,而dateutil.relativedelta存储馈送给它的每个时间组件。
这dateutil.relativedelta对于存储诸如 1 个月之类的差异很重要,但由于一个月的长度可能会有所不同,这意味着根本无法在datetime.timedelta.
如果有人想要将特定日期的relativedeltaa 转换为 a ,只需添加和减去已知时间:timedelta
utcnow = datetime.utcnow()
rel_delta = relativedelta(months=-2)
time_delta = utcnow + rel_delta - utcnow # e.g, datetime.timedelta(days=-62)
Run Code Online (Sandbox Code Playgroud)
正如评论者指出的那样,结果timedelta值会根据月份的不同而有所不同。
| 归档时间: |
|
| 查看次数: |
5992 次 |
| 最近记录: |