我想陷阱值是這樣的(在沒有對日期時間的時間信息「):發現,如果一個python日期時間已經沒有時間信息
datetime.datetime(2009, 4, 6, 0, 0)
是否有更好的方法來檢測除測試小時/分鐘/秒以外的這些值?
if value.hour == 0 and value.minute == 0 and value.second == 0:
# do stuff
我想陷阱值是這樣的(在沒有對日期時間的時間信息「):發現,如果一個python日期時間已經沒有時間信息
datetime.datetime(2009, 4, 6, 0, 0)
是否有更好的方法來檢測除測試小時/分鐘/秒以外的這些值?
if value.hour == 0 and value.minute == 0 and value.second == 0:
# do stuff
時間的方法在這裏工作。如果零時間信息爲零,則評估爲布爾錯誤。
if not value.time():
# do stuff
我沒有看到你的方法錯誤,但你可以將它與'歸零'時間對象進行比較。
someDateTime = datetime.datetime(2009, 4, 6, 0, 0)
someDateTime.time() == datetime.time(0)
另一種選擇:
if not (value.hour or value.minute or value.second):
# do stuff
即使您的選擇和'如果不是value.hour而不是value.minute和不是value.second'都做同樣的事情,我發現後者更清楚地表達了預期的行爲。 – 2009-09-14 20:29:48
你真需要檢查微秒爲好。另一種選擇:
NO_TIME = datetime.time(0) # can be stored as constant
if (value.time() == NO_TIME):
# do stuff
不要忽略HMS == 0爲1 86,400完全完成的時間值!取決於你在做什麼,這可能不會忽略不計。
完全意識到這一點,在應用程序中永遠不應該有一個實例,這將是一個有效的輸入值(着名的遺言)。 – 2009-09-14 20:35:02
嗯,這是乾淨的 – 2009-09-14 20:35:53