2017-08-03 48 views
0

我試圖解析其中有一個軍用時間小時值類型錯誤:無法比較datetime.datetime到datetime.time

'10:00:00' 

我能夠用做這樣的字符串

>>> datetime.datetime.strptime('10:00:00', '%H:%M:%S').time() 
datetime.time(10, 0) 

然後我得到的當前時間在特定的時間段:

>>> datetime.datetime.utcnow()+ datetime.timedelta(hours=10) 
datetime.datetime(2017, 8, 3, 11, 26, 1, 909000) 

我試圖做的是從與字符串比較時當前時間以utc。但是,當我比較值

>>> bne_time_now > tag_time 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: can't compare datetime.datetime to datetime.time 

我想我需要做的是設置一個默認的時間值,當我解析字符串,但我不知道如何做到這一點?

回答

0

所以我設法得到這個工作:

>>> today = datetime.datetime.utcnow() 
>>> today 
datetime.datetime(2017, 8, 3, 1, 52, 33, 253000) 
>>> datetime.datetime.strptime('10:00:00', '%H:%M:%S').replace(year=today.year, month=today.month, day=today.day) 
datetime.datetime(2017, 8, 3, 10, 0) 

剛剛張貼在這裏萬一有人需要這個解決方案

0

將您datetime.datetime對象使用time()方法datetime.time對象。

>>> (datetime.datetime.utcnow() + datetime.timedelta(hours=10)).time() 
datetime.time(11, 33, 51, 523382) 

然後你可以比較兩個時間對象。

+0

感謝您的回答。儘管如此,我仍然需要閱讀一段時間,但不確定我是如何用這種方法來做的? –

相關問題