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

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


当前回答

一种从日期转换到日期时间的方法还没有提到:

from datetime import date, datetime
d = date.today()
datetime.strptime(d.strftime('%Y%m%d'), '%Y%m%d')

其他回答

一种从日期转换到日期时间的方法还没有提到:

from datetime import date, datetime
d = date.today()
datetime.strptime(d.strftime('%Y%m%d'), '%Y%m%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,
)

这就是我对“显性比隐性好”的看法。

我是Python的新手。但是这段代码为我工作,它将我提供的指定输入转换为datetime。这是代码。如果我说错了,请指正。

import sys
from datetime import datetime
from time import mktime, strptime

user_date = '02/15/1989'
if user_date is not None:
     user_date = datetime.strptime(user_date,"%m/%d/%Y")
else:
     user_date = datetime.now()
print user_date

你也可以使用

date = datetime.utcnow().date()
dt = datetime.fromisoformat(date.isoformat())

print(dt)

datetime.datetime(2021, 11, 15, 0, 0)

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

不,你更想打电话

date_to_datetime(dt)

你可以在项目中的一些utils/time.py中实现一次:

from typing import Optional
from datetime import date, datetime

def date_to_datetime(
    dt: date,
    hour: Optional[int] = 0,
    minute: Optional[int] = 0, 
    second: Optional[int] = 0) -> datetime:

    return datetime(dt.year, dt.month, dt.day, hour, minute, second)