[英]Most efficient way of converting days to a datetime object
我的問題是我有一個從 2000 年 1 月 1 日開始的 integer 366(天),我需要一個日期時間 object 到 2000 年 1 月 1 日 + 366 天。 不是字符串,而是日期時間 object。
我有一個類似的問題,微秒需要在datetime.time
中。 我的微秒大於允許的范圍,因此datetime.time(microsecond=9999999999)
將失敗。 解決這兩個問題的最有效方法是什么?
>>> import datetime
>>> datetime.timedelta(days=366)
datetime.timedelta(366)
>>> datetime.datetime(2000, 1, 1) + datetime.timedelta(days=366)
datetime.datetime(2001, 1, 1, 0, 0)
>>>
>>> datetime.timedelta(microseconds=9999999999)
datetime.timedelta(0, 9999, 999999) # 9999.999999 seconds
>>> datetime.datetime(2000, 1, 1) + datetime.timedelta(microseconds=9999999999)
datetime.datetime(2000, 1, 1, 2, 46, 39, 999999)
>>> str(datetime.timedelta(microseconds=9999999999))
'2:46:39.999999' # 2 hours 46 minutes 39 seconds
如果你想要一個datetime.time
object 特別是,你可以將它添加到任何一天進行轉換,但要注意這將在大於 24 小時的時間范圍內失敗:
>>> x = datetime.datetime(1,1,1) + datetime.timedelta(microseconds=9999999999)
>>> x
datetime.datetime(1, 1, 1, 2, 46, 39, 999999)
>>> x.time()
datetime.time(2, 46, 39, 999999)
使用datetime()
創建您想要的任何日期,然后向其添加timedelta
。
from datetime import datetime, timedelta
d = datetime(year=2000, month=1, day=1) + timedelta(days=366)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.