Skip to main content
 首页 » 编程设计

python之如何检查变量是否是 datetime.datetime 或 datetime.date 的实例

2025年05月04日14del

我试过了

In [16]: import datetime 
 
In [17]: now = datetime.datetime.utcnow() 
 
In [18]: isinstance(now, datetime.date) 
Out[18]: True 
 
In [19]: isinstance(now, datetime.datetime) 
Out[19]: True 

我期望的是第一个 isinstance 应该返回 False。发生了什么事?

请您参考如下方法:

因为 datetime 继承自 date,所以 datetime 的每个实例也是 date 的实例,即您可以在任何需要使用 date 实例的地方使用 datetime 实例。这是 central concept在面向对象编程中。

要修改检查以执行您想要的操作,您可以使用 type(now) is datetime.date 专门针对 date 进行测试。或者,您可以使用 isinstance(now, datetime.date) 而不是 isinstance(now, datetime.datetime) 明确排除 datetime。