Python中是否有将日期转换为日期时间的内置方法,例如获取给定日期的午夜日期时间?相反的转换很容易:datetime有一个.date()方法。

我真的需要手动调用datetime(d。年,月,日)?


当前回答

使用Django timezone util使dt能够感知datetime时区:

from django.utils import timezone


timezone.now().replace(*(*dt.timetuple()[:6], 0))

其他回答

如果你需要一些快速的东西,datetime_object.date()会给你一个datetime对象的日期。

今天是2016年,我认为熊猫提供了最干净的解决方案。

from datetime import date
import pandas as pd
d = date.today()
pd.Timestamp(d)

时间戳是熊猫版的datetime,在大多数情况下可以与它互换。检查:

from datetime import datetime
isinstance(pd.Timestamp(d), datetime)

但如果你真的想要一个香草日期时间,你仍然可以这样做:

pd.Timestamp(d).to_datetime()

在处理时区时,时间戳比datetimes强大得多。实际上,时间戳是如此强大,以至于遗憾的是它们的文档记录如此之少……

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

from datetime import date
from datetime import datetime

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

使用Django timezone util使dt能够感知datetime时区:

from django.utils import timezone


timezone.now().replace(*(*dt.timetuple()[:6], 0))

你可以使用date.timetuple()方法和解包操作符*。

args = d.timetuple()[:6]
datetime.datetime(*args)