Python中是否有将日期转换为日期时间的内置方法,例如获取给定日期的午夜日期时间?相反的转换很容易:datetime有一个.date()方法。
我真的需要手动调用datetime(d。年,月,日)?
Python中是否有将日期转换为日期时间的内置方法,例如获取给定日期的午夜日期时间?相反的转换很容易:datetime有一个.date()方法。
我真的需要手动调用datetime(d。年,月,日)?
当前回答
公认的答案是正确的,但我更倾向于避免使用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,
)
这就是我对“显性比隐性好”的看法。
其他回答
今天是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.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,
)
这就是我对“显性比隐性好”的看法。
使用Django timezone util使dt能够感知datetime时区:
from django.utils import timezone
timezone.now().replace(*(*dt.timetuple()[:6], 0))
你也可以使用
date = datetime.utcnow().date()
dt = datetime.fromisoformat(date.isoformat())
print(dt)
datetime.datetime(2021, 11, 15, 0, 0)
如果你需要一些快速的东西,datetime_object.date()会给你一个datetime对象的日期。