繁体   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