2017-04-08 55 views
0

我想解决一个问题。我正在以下面提到的格式定义日期和时间。加入2个时间字符串

date1 = '2016-12-1' 
time1 = '10:30 AM' 
time2 = '11:30 PM' 

我有另一个字符串add_time = '01:50'变量的类型是字符串。

就是我要找的是:

new_date_and_time = time1 + add_time 

,使其返回 date1 and new_date_and_time

> 2016-12-1, 12:20 PM (10:30 AM + 1:50) 

,但如果我加入time2 + add_time日也发生了变化, 所以它应该打印2016-12-2, 1:20 AM

有没有可以做到这一点的任何软件包?

+0

的问题是有点混乱加入时间。我想你要求的是'date1'和'time1'作为'datetime'合并,然后使用['datetime']添加'timedelta'(https://docs.python.org/2 /library/datetime.html)模块? – roganjosh

+0

我误解了这个问题,我现在明白了。 “2016-12-2,1:20 AM”是您想要的结果格式?与“等时”或“24小时制”相比,它使一般情况下的工作更加复杂。 '2016-12-2 01:20:00'等 – roganjosh

+0

@roganjosh任何人都会好的 – Shubham

回答

0

将字符串转换为datetime对象,然后使用timedelta

from datetime import datetime, timedelta 

date1 = '2016-12-1' 
time1 = '10:30 AM' 

date_object = datetime.strptime(date1 + ' ' + time1, '%Y-%m-%d %I:%M %p') 
new_date_object = date_object + timedelta(hours=1) + timedelta(minutes=50) 
+0

我原本以为他们想要'timedelta',但实际上这是一个硬编码的解决方案。我会建议'datetime.combine()',然后在没有硬编码的情况下将'add_time'解析到'timedelta'中。 – roganjosh

相关问题