使用python将日期从dd-mm-yy转换为dd-mm-yyy
我有一个日期输入'date_dob',即'53年4月20日' 我尝试使用以下代码将其转换为yyyy-mm-dd格式:使用python将日期从dd-mm-yy转换为dd-mm-yyy,python,date,datetime,Python,Date,Datetime,我有一个日期输入'date_dob',即'53年4月20日' 我尝试使用以下代码将其转换为yyyy-mm-dd格式: print pd.to_datetime(date_dob,format = '%d-%b-%y') 它返回“2053-04-20 00:00:00”而不是“1953-04-20 00:00:00”您需要明确检查年份,然后将其减去100年,如下所示: >>> import datetime >>> my_date = '20-Apr-53'
print pd.to_datetime(date_dob,format = '%d-%b-%y')
它返回“2053-04-20 00:00:00”而不是“1953-04-20 00:00:00”您需要明确检查年份,然后将其减去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
- 官员是你的朋友。咨询它;-)
%y->不带世纪的年份,作为零填充十进制数
%Y->以世纪为十进制数的年份
所以使用这种方法
format='%d-%b-%Y'