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