为了账号安全,请及时绑定邮箱和手机立即绑定

如何将某个时间添加到日期时间?

如何将某个时间添加到日期时间?

一只萌萌小番薯 2022-01-18 17:35:49
我想将小时数添加到 adatetime并使用:date = date_object + datetime.timedelta(hours=6)现在我想添加一个时间:(time='-7:00'字符串)加上 4 小时。我试过hours=time+4了,但这不起作用。我想我必须int像这样的字符串,int(time)但这也不起作用。
查看完整描述

2 回答

?
月关宝盒

TA贡献1772条经验 获得超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办法组成持续时间。


new_time = initial_datetime + datetime.timedelta(hours=input_hours,minutes=input_minutes,seconds=input_seconds)


查看完整回答
反对 回复 2022-01-18
?
Qyouu

TA贡献1786条经验 获得超11个赞

您需要转换为 datetime 对象才能将 timedelta 添加到当前时间,然后将其返回到时间部分。


使用date.today()只是使用任意当前日期并将时间设置为您提供的时间。这允许您添加天数并将时钟重置为 00:00。


dt.time() 打印出您正在寻找的结果。


from datetime import date, datetime, time, timedelta


dt = datetime.combine(date.today(), time(7, 00)) + timedelta(hours=4)

print dt.time()

编辑: 从字符串中获取time='7:00'可以在冒号上拆分的内容,然后引用每个内容。


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()

如果您已经有一个完整的日期可以使用,如评论中所述,您应该使用strptime将其转换为日期时间。我认为另一个答案会介绍如何使用它,所以我不打算举个例子。


查看完整回答
反对 回复 2022-01-18
  • 2 回答
  • 0 关注
  • 282 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号