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

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


当前回答

你可以使用easy_date来简化:

import date_converter
my_datetime = date_converter.date_to_datetime(my_date)

其他回答

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

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

>>> import datetime
>>> 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对象中适当地提取信息,并将其返回到datetime的适当的ctor或类函数中。

我是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

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