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

愚蠢的问题,但有一个转换内置方法datedatetime在Python,即。 获取datetime的午夜date ? 相反的转换很简单 - datetime有一个.date()方法。 我真的必须手动调用datetime(d.year, d.month, d.day)吗?


你可以使用datetime.combine(日期,时间); 暂时,您创建一个初始化为午夜的datetime.time对象。

from datetime import date
from datetime import datetime
d = date.today()
datetime.combine(d, datetime.min.time())

有几种方法,尽管我确实相信你提到的(并且不喜欢)是最可读的。

>>> 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)

等等-但基本上他们都视乎适当提取的信息date对象和春耕它放回合适的构造函数或classfunction的datetime


接受的答案是正确的,但我宁愿避免使用datetime.min.time()因为它对我来说并不明显。 如果这对你很明显,那么对你来说更多的权力。 对于timetuple方法和对排序的依赖,我也有同样的感受。

在我看来,在不依赖读者对datetime模块API非常熟悉的情况下,这样做的最明确可读的方法是:

from datetime import date, datetime
today = date.today()
today_with_time = datetime(
    year=today.year, 
    month=today.month,
    day=today.day,
)

这是我的“明确比隐含更好”。

链接地址: http://www.djcxy.com/p/25189.html

上一篇: Convert date to datetime in Python

下一篇: Converting integer to string in Python?