2017-04-08 25 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