我有一些格式为
dd-MMM-yyyy
的日期。如何在Python中将其转换为yyyyMMdd
格式?例如,我需要将20-Nov-2002转换为20021120。您可以使用datetime.datetime.strptime()
按特定格式读取日期,然后使用.strftime()
将其以所需格式写回。例如 -
>>> import datetime
>>> datetime.datetime.strptime('20-Nov-2002','%d-%b-%Y').strftime('%Y%m%d')
'20021120'
格式 -
%d - 两位数日期
%b - 三个字母月份缩写
%Y - 四位数年份
%m - 两位数月份
有关不同支持的格式的更多详细信息,请单击此处。
re
模块来实现此功能,代码如下:import re
text = '20-Nov-2002'.replace('Nov', '11')
print(re.sub(r'(\d+)-(\d+)-(\d+)', r'\3-\1-\2', text))
输出:
2002-20-11
但如果你想将整个月份转换,而不仅仅是将 Nov
转换为 11
。
你可以使用 datetime
模块,像这样:
import re, datetime
month = datetime.datetime.strptime('Nov', '%b').strftime('%m')
text = '20-{month}-2002'.format(month=month)
print(re.sub(r'(\d+)-(\d+)-(\d+)', r'\3-\1-\2', text))
输出结果相同。