簡體   English   中英

將天數轉換為日期時間的最有效方法 object

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM