我有一个函数可以接受日期或日期时间作为其参数之一。如果该值是日期时间,我想将其转换为其{{1}}组件。什么是pythonic方式呢?
答案 0 :(得分:3)
由于datetime
个对象是 date
个对象,您应该可以调用date
上的任何datetime
函数并使其正常工作。< / p>
但如果你必须:
if isinstance(param_date, datetime.datetime):
param_date = param_date.date()
会将datetime
和date
个对象规范化为date
个对象......现在您只需处理它们,因为date
个对象不是{{1}对象:
datetime
注意:反向不适用:
>>> isinstance(datetime.date.today(), datetime.datetime)
False
>>> isinstance(datetime.datetime.now(), datetime.date)
True
继承自datetime
。
答案 1 :(得分:0)
您可以先检查它是否为datetime.datetime
类型,然后使用datetime.datetime.date()
继续将其转换为date
组件。
代码中的一个例子如下。
导入datetime
模块,并将变量d
设置为当前datetime
。
>>> import datetime
>>> d = datetime.datetime.now()
>>> d
datetime.datetime(2017, 4, 7, 22, 10, 51, 89213)
然后检查d
是否为datetime
个对象,以及是否将其设置为date
对象。
>>> if type(d) is datetime.datetime:
>>> d = d.date()
>>> d
datetime.date(2017, 4, 7)