簡體   English   中英

Python:向僅時間對象添加分鍾或秒

[英]Python: Add minutes or seconds to a time only object

我需要向沒有日期部分的 Time 對象添加給定的分鍾數或秒數。

例如:

時間:13:00:00 + 10分鍾(應在13:10:00返回)

時間:21:50:00 + 1800 秒(應該返回 22:20:00)

我的代碼:

from datetime import timedelta

d = timedelta(minutes=30)
calendar_entry + d  #calendar_entry is a time object HH:MM:SS

錯誤:

During handling of the above exception (unsupported operand type(s) 
for +: 'datetime.time' and 'datetime.timedelta'), another exception 
occurred:  

我怎樣才能在 Python 3 中做到這一點?

嘗試這個:

from datetime import date, datetime, time, timedelta
dt = datetime.combine(date.today(), time(13, 0)) + timedelta(minutes=10)
print (dt.time())
#13:10:00

這是你想要的:

import datetime

date = datetime.datetime.strptime('15:57:12', '%H:%M:%S')
print(date.strftime('%H:%M:%S'))
date = date+datetime.timedelta(seconds=1800)
print(date.strftime('%H:%M:%S'))
date = date+datetime.timedelta(minutes=30)
print(date.strftime('%H:%M:%S'))

輸出:

15:57:12
16:27:12
16:57:12

這種操作方式僅適用於日期時間對象,但幸運的是,您可以按照自己的方式進行從日期時間到時間的轉換。 看看add_minutes:

import datetime

def add_minutes(tm, minutes1):
    fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second)
    fulldate = fulldate + datetime.timedelta(minutes=minutes1)
    return fulldate.time()

a = datetime.datetime.now().time()
b = add_minutes(a, 2)
print(a)
print(b)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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