![](/img/trans.png)
[英]Python datetime.strptime - ValueError: time data does not match format
[英]Python how to save datetime.strptime in datetime.time format
所以我試圖使用datetime制作一個簡單的代碼並遇到錯誤。
import time
from datetime import datetime
x = True
b = datetime.strptime("06:10", "%H:%M")
while x == True:
a = datetime.now().time()
print(a)
if a > b:
x = False
time.sleep(0.945)
結果我得到了
TypeError: unorderable types: datetime.time() > datetime.datetime()
所以我想知道是否可以以datetime.time()格式保存datetime.strptime。
提前致謝
比較a
和b
.time()
為:
if a > b.time(): # if you want to compare only time
而不是datetime
對象。 答案結束時的原因。
datetime.now().time()
是datetime.time
類型:
>>> type(datetime.now().time())
<type 'datetime.time'>
而datetime.strptime()
和datetime.now()
是datetime.datetime
類型:
>>> type(datetime.strptime("06:10", "%H:%M"))
<type 'datetime.datetime'>
>>> type(datetime.now())
<type 'datetime.datetime'>
根據Martijn的評論進行編輯。
在創建datetime
datetime.strptime("06:10", "%H:%M")
日期時間對象時,日期將設置為1900-01-01
。 絕對我不認為你想與之比較。 您可以將日期檢查為:
>>> d = datetime.strptime("06:10", "%H:%M")
>>> d
datetime.datetime(1900, 1, 1, 6, 10)
您試圖比較datetime
time
和time
對象,Python不允許您進行比較。
如果你執行datetime.strptime()
你會得到一個包含日期和時間的對象(稱為datetime
)。 但是因為您還沒有解析默認為01-01-1900的日期。 現在datetime.now()
也會獲得一個datetime
對象但是具有當前日期。 所以直接比較datetime.now()
和b
將不起作用,因為日期不同。
現在你只使用datetime.now().time()
使用當前時間,所以你還需要在比較之前的某個地方通過b = b.time()
將它應用於b
。
使用'datetime.now()'insted of'datetime.now()。time()'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.