您的位置:

Python中如何将datetime转为date类型

一、datetime和date的区别

在Python中,datetime和date都是表示日期和时间的对象。不同的是,datetime包含日期和时间,而date只包含日期。

因此,将datetime转为date有时是必要的操作。这个操作在我们日常开发中很常见,比如从数据库中取出时间戳然后转成日期格式。

二、使用datetime.date()方法

Python中的datetime模块提供了date()方法,可以将datetime对象转为date对象。

import datetime

# 创建一个datetime对象
dt = datetime.datetime.now()

# 转换为date对象
d = dt.date()

print("dt: ", dt)
print("d: ", d)

以上代码输出的结果如下:

dt:  2022-08-03 16:14:11.747891
d:  2022-08-03

三、使用strftime()方法

Python中的strftime()方法可以将datetime对象格式化成字符串。

import datetime

# 创建一个datetime对象
dt = datetime.datetime.now()

# 按照指定格式将datetime对象格式化成字符串
d = dt.strftime('%Y-%m-%d')

print("dt: ", dt)
print("d: ", d)

以上代码输出的结果如下:

dt:  2022-08-03 16:14:11.747891
d:  2022-08-03

需要注意的是,strftime()方法格式化后返回的是字符串,而不是日期类型。

四、使用dateutil库

Python中的dateutil库提供了一个parser对象可以将字符串解析成datetime对象或date对象。

首先需要安装dateutil库:

pip install python-dateutil
from dateutil.parser import parse

# 创建一个datetime对象
dt = parse("2022-08-03 16:14:11")

# 转换为date对象
d = dt.date()

print("dt: ", dt)
print("d: ", d)

以上代码输出的结果如下:

dt:  2022-08-03 16:14:11
d:  2022-08-03

五、总结

Python中将datetime转为date很简单,可以使用datetime模块的date()方法,也可以使用strftime()方法将datetime格式化成字符串再转换为date类型。

另外,dateutil库也提供了一个parser对象可以将字符串解析成datetime或date对象,虽然这个库的功能比较丰富,但是不建议在性能要求较高的场景中使用。