在Python中將日期轉換為日期時間



Answers

有幾種方法,儘管我確實相信你提到的(並且不喜歡)是最可讀的。

>>> 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中。

Question

愚蠢的問題,但有沒有一個內置的方法在Python中將date轉換為date ,即。 獲取datetime的午夜date ? 相反的轉換很簡單 - datetime有一個.date()方法。 我真的必須手動調用datetime(d.year, d.month, d.day)嗎?




使用熊貓將一系列日期轉換為Python日期時間:

dates = pd.DataFrame(
    {'date': pd.DatetimeIndex(start='2017-01-01', end='2017-01-5', freq='D')})
>>> dates
        date
0 2017-01-01
1 2017-01-02
2 2017-01-03
3 2017-01-04
4 2017-01-05

>>> pd.DatetimeIndex(dates['date']).to_pydatetime().tolist()
[datetime.datetime(2017, 1, 1, 0, 0),
 datetime.datetime(2017, 1, 2, 0, 0),
 datetime.datetime(2017, 1, 3, 0, 0),
 datetime.datetime(2017, 1, 4, 0, 0),
 datetime.datetime(2017, 1, 5, 0, 0)]

可能首先需要轉換日期:

dates = pd.DataFrame(
        {'date': ['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04', '2017-01-05']})
dates['date'] = pd.DatetimeIndex(dates['date'])
pd.DatetimeIndex(dates['date']).to_pydatetime().tolist()



你可以使用easy_dateeasy_date它:

import date_converter
my_datetime = date_converter.date_to_datetime(my_date)



你可以使用timetuple()方法和可變參數。

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



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



Links