2016-11-04 72 views
-1

我有一個日期輸入'date_dob'這是'20 -Apr-53' 我試圖將其轉換爲格式yyyy-mm-dd使用以下代碼:轉換日期從dd-mm-yy到dd-mm-yyyy使用python

print pd.to_datetime(date_dob,format = '%d-%b-%y') 

返回「2053年4月20日00:00:00」而不是「1953年4月20日00:00:00」

回答

0

你需要明確檢查的一年,然後減去100年:

>>> import datetime 

>>> my_date = '20-Apr-53' 
>>> d = datetime.datetime.strptime(my_date, '%d-%b-%y') 
>>> d 
datetime.datetime(2053, 4, 20, 0, 0) 
#     ^year = 2053 
>>> if d.year > 2000: 
...  d = d.replace(year=d.year-100) # subtract year by 100 
... 
>>> d 
datetime.datetime(1953, 4, 20, 0, 0) 
#     ^year = 1953 
>>> d.strftime('%Y-%m-%d') # %Y instead of %y, reason mentioned below 
'1953-04-20' 
#^all four digit of year 

使用%Y,而不是%y因爲:

  • %y:顯示最後兩位數年份的

  • %Y:顯示所有四位數年份的

0

官方doc是你的朋友。請諮詢;-)

%y - >沒有世紀的年份爲零填充十進制數。

%Y - >以十進制數表示的世紀年。

因此,使用這種方法

format='%d-%b-%Y'