簡體   English   中英

Python如何以datetime.time格式保存datetime.strptime

[英]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。

提前致謝

比較ab .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 timetime對象,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM