2 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個贊
最好像下面那樣解析時間并訪問日期時間屬性以從解析的日期時間對象中獲取時間組件
input_time = datetime.strptime(yourtimestring,'yourtimeformat')
input_seconds = input_time.second # for seconds
input_minutes = input_time.minute # for minutes
input_hours = input_time.hour # for hours
# Usage: input_time = datetime.strptime("07:00","%M:%S")
休息一下,你有datetime.timedelta辦法組成持續(xù)時間。
new_time = initial_datetime + datetime.timedelta(hours=input_hours,minutes=input_minutes,seconds=input_seconds)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個贊
您需要轉(zhuǎn)換為 datetime 對象才能將 timedelta 添加到當(dāng)前時間,然后將其返回到時間部分。
使用date.today()只是使用任意當(dāng)前日期并將時間設(shè)置為您提供的時間。這允許您添加天數(shù)并將時鐘重置為 00:00。
dt.time() 打印出您正在尋找的結(jié)果。
from datetime import date, datetime, time, timedelta
dt = datetime.combine(date.today(), time(7, 00)) + timedelta(hours=4)
print dt.time()
編輯: 從字符串中獲取time='7:00'可以在冒號上拆分的內(nèi)容,然后引用每個內(nèi)容。
this_time = this_time.split(':') # make it a list split at :
this_hour = this_time[0]
this_min = this_time[1]
編輯2: 然后將它們重新組合在一起:
from datetime import date, datetime, time, timedelta
this_time = '7:00'
this_time = this_time.split(':') # make it a list split at :
this_hour = int(this_time[0])
this_min = int(this_time[1])
dt = datetime.combine(date.today(), time(this_hour, this_min)) + timedelta(hours=4)
print dt.time()
如果您已經(jīng)有一個完整的日期可以使用,如評論中所述,您應(yīng)該使用strptime將其轉(zhuǎn)換為日期時間。我認(rèn)為另一個答案會介紹如何使用它,所以我不打算舉個例子。
添加回答
舉報(bào)