将datetime.date对象转换为带零的datetime.datetime对象,以表示缺少的时间属性

发布于 2021-01-29 14:56:22

是否有内置函数将缺少的东西将datetime.date对象转换为带有0的datetime.datetime对象?例如,假设

tdate = datetime.date(2012,1,31)

我想写这样的东西

tdatetime = datetime.date.datetime()
tdatetime = datetime.datetime(tdate)

我希望输出是

datetime.datetime(2012, 1, 31, 0, 0)

但是两者都不起作用。从datetime.datetime到datetime.date有一个内置函数,但是我正在寻找相反的操作。

一种非常差的解决方案是写:

datetime.datetime(tdate.year(), tdate.month(), tdate.day(), 0, 0)

我特别想避免这种不好的方法。

我已经编写了自己的小函数来执行此操作,但是我认为应该在模块中提供它。使用我的功能时,一些系统范围的导入变得混乱不堪。这是可行的,但不是Pythonic。

我只想问问是否有人知道仅使用datetime模块函数就能做到这一点。

关注者
0
被浏览
70
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用.combine(date, time)一个空time的实例

    >>> import datetime
    >>> tdate = datetime.date(2012,1,31)
    >>> datetime.datetime.combine(tdate, datetime.time())
    datetime.datetime(2012, 1, 31, 0, 0)
    

    如果您想使用常量,请使用time.min

    >>> datetime.datetime.combine(tdate, datetime.time.min)
    datetime.datetime(2012, 1, 31, 0, 0)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看