在 Python 中将日期转换为日期时间

2022-09-05 01:17:21

有没有一种内置的方法可以在Python中将a转换为a,例如获取给定日期的午夜?相反的转换很容易:有一个方法。datedatetimedatetimedatetime.date()

我真的需要手动呼叫吗?datetime(d.year, d.month, d.day)


答案 1

您可以使用datetime.combine(date, time);此时,您创建了一个初始化为午夜的对象。datetime.time

from datetime import date
from datetime import datetime

dt = datetime.combine(date.today(), datetime.min.time())

答案 2

有几种方法,尽管我相信你提到的(和不喜欢的)是最具可读性的方法。

>>> t=datetime.date.today()
>>> datetime.datetime.fromordinal(t.toordinal())
datetime.datetime(2009, 12, 20, 0, 0)
>>> datetime.datetime(t.year, t.month, t.day)
datetime.datetime(2009, 12, 20, 0, 0)
>>> datetime.datetime(*t.timetuple()[:-4])
datetime.datetime(2009, 12, 20, 0, 0)

等等 - 但基本上它们都取决于从对象中适当地提取信息并将其犁回合适的ctor或classfunction中。datedatetime