You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将date类型转换为不带时间部分的datetime类型

Python date对象转无时间部分datetime实现方案

问题说明

现有遍历指定年月所有自然日的代码,生成的对象为date类型,需要转换为datetime类型,且不需要附带有效时间部分。
原有参考代码如下(缺少依赖导入,直接运行会报错):

def func(y, m):
for i in range(1, calendar.monthrange(y, m)[1]+1):
    th_date = date(y, m, i)
    print(th_date)
func(2020,4)

实现方式

使用datetime.combine()方法完成转换,将已有date对象与time.min(对应00:00:00)组合,得到的就是对应日期零点的datetime对象,无额外有效时间信息,完全符合需求。

修正后可直接运行的完整代码:

import calendar
from datetime import date, datetime, time

def func(y, m):
    for i in range(1, calendar.monthrange(y, m)[1] + 1):
        th_date = date(y, m, i)
        # 转换为无有效时间部分的datetime对象
        th_datetime = datetime.combine(th_date, time.min)
        print(th_datetime)

func(2020, 4)

其他可选方案

  • 如果不需要单独生成date对象,可以直接在循环中构造datetime实例:th_datetime = datetime(y, m, i),运行效果和上述转换逻辑完全一致,代码更简洁。
  • 也可以通过日期序值转换:th_datetime = datetime.fromordinal(th_date.toordinal()),效果相同,但写法可读性弱于combine方法,不推荐优先使用。

效果说明

转换后的对象为标准datetime类型,打印输出格式为2020-04-01 00:00:00,可直接用于时间计算、数据库字段写入等所有需要datetime类型的场景,不会携带多余的时间参数。

内容的提问来源于stack exchange,提问作者Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 02:51:32