一、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对象,虽然这个库的功能比较丰富,但是不建议在性能要求较高的场景中使用。