有没有办法将可以是日期时间或日期的变量转换为日期?

时间:2017-04-07 19:08:09

标签: python

我有一个函数可以接受日期或日期时间作为其参数之一。如果该值是日期时间,我想将其转换为其{{1}}组件。什么是pythonic方式呢?

2 个答案:

答案 0 :(得分:3)

由于datetime个对象 date个对象,您应该可以调用date上的任何datetime函数并使其正常工作。< / p>

但如果你必须:

if isinstance(param_date, datetime.datetime): 
    param_date = param_date.date()

会将datetimedate个对象规范化为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)