time单位 - 在Python中将日期转换为日期时间




time time单位 (7)

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


今天是2016年,我认为最干净的解决方案是由熊猫时间戳提供的:

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

时间戳是与日期时间相当的熊猫,在大多数情况下可与其互换。 检查:

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

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

pd.Timestamp(d).to_datetime()

时间戳比日期时间更强大,在处理时区时也是如此。 实际上,时间戳功能非常强大,遗憾的是他们的记录太差了......


从日期转换为日期时间的一种尚未提及的方法:

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

你可以使用easy_dateeasy_date它:

import date_converter
my_datetime = date_converter.date_to_datetime(my_date)

你可以使用timetuple()方法和可变参数。

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

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


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

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

>>> 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对象中适当地提取信息,并将其放回适合的date的ctor或classfunction中。







date