5

是否有一个内置函数可以将 datetime.date 对象转换为 datetime.datetime 对象,其中缺少的内容为 0?例如,假设

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 模块功能的有效方法。

4

1 回答 1

13

.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)
于 2012-06-25T15:56:51.877 回答