Python 有没有办法将日期时间或日期变量转换为日期?

Python 有没有办法将日期时间或日期变量转换为日期?,python,Python,我有一个函数,可以接受日期或日期时间作为其参数之一。如果该值是datetime,我想将其转换为其date组件。什么是python方法呢?既然datetime对象是date对象,您应该能够调用datetime上的任何date函数并使其工作 但如果你必须: if isinstance(param_date, datetime.datetime): param_date = param_date.date() 将任何datetime和date对象标准化为date对象。。。现在您只需处理它们

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

既然
datetime
对象
date
对象,您应该能够调用
datetime
上的任何
date
函数并使其工作

但如果你必须:

if isinstance(param_date, datetime.datetime): 
    param_date = param_date.date()
将任何
datetime
date
对象标准化为
date
对象。。。现在您只需处理它们,因为
date
对象不是
datetime
对象:

>>> isinstance(datetime.date.today(), datetime.datetime)
False
注意:反之不适用:

>>> isinstance(datetime.datetime.now(), datetime.date)
True

由于
datetime
继承自
date

由于
datetime
对象
date
对象,您应该能够调用
datetime
上的任何
date
函数并使其工作

但如果你必须:

if isinstance(param_date, datetime.datetime): 
    param_date = param_date.date()
将任何
datetime
date
对象标准化为
date
对象。。。现在您只需处理它们,因为
date
对象不是
datetime
对象:

>>> isinstance(datetime.date.today(), datetime.datetime)
False
注意:反之不适用:

>>> isinstance(datetime.datetime.now(), datetime.date)
True

由于
datetime
继承自
date

,您可以首先检查它是否属于
datetime.datetime
类型,然后使用将其转换为
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)

您可以首先检查它是否属于
datetime.datetime
类型,然后使用将其转换为
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)

如果是instance(param_date,datetime.datetime):param_date=paramdate.date()
使用
.date()
方法…?@Dadep,则日期对象不存在
.date()
方法。我已经试过了。我认为值得一问:为什么要费心转换呢?由于
datetime
date
的一个子类,您应该能够在不做任何更改的情况下将datetime用作日期。
如果存在(param_date,datetime.datetime):param_date=paramdate.date()
使用
.date()
方法…?@Dadep,则日期对象不存在
.date()
方法。我已经试过了。我认为值得一问:为什么要费心转换呢?由于
datetime
date
的一个子类,您应该能够在不做任何更改的情况下将datetime用作日期。