我想捕获像这样的值(在日期时间没有'时间信息'):
datetime.datetime(2009, 4, 6, 0, 0)
Run Code Online (Sandbox Code Playgroud)
除了测试小时/分钟/秒之外,还有更好的方法来检测这些值吗?
if value.hour == 0 and value.minute == 0 and value.second == 0:
# do stuff
Run Code Online (Sandbox Code Playgroud)
han*_*ims 12
时间方法在这里工作.如果没有时间信息,则评估为布尔值false.
if not value.time():
# do stuff
Run Code Online (Sandbox Code Playgroud)
spg*_*spg 10
对于 python 3.5 及以上版本:
if value.hour == 0 and value.minute == 0 and value.second == 0 and value.microsecond == 0:
# do stuff
Run Code Online (Sandbox Code Playgroud)
对于低于 3.5 的 python:
if not value.time():
# do stuff
Run Code Online (Sandbox Code Playgroud)
datetime.time说明:实例的布尔计算在 python 3.5 中已更改:
在布尔上下文中,时间对象始终被认为是 true。
版本 3.5 中的更改:在 Python 3.5 之前,如果时间对象表示 UTC 午夜,则该时间对象被认为是 false。这种行为被认为是晦涩且容易出错的,并已在 Python 3.5 中删除。有关完整详细信息,请参阅 bpo-13936。
我认为您的方法没有任何问题,但您可以将其与“归零”时间对象进行比较。
import datetime
dt = datetime.datetime(2009, 4, 6, 0, 0)
dt.time() == datetime.time()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2399 次 |
| 最近记录: |