如何将不同日期的Python格式进行转换?

8
我有一些格式为dd-MMM-yyyy的日期。如何在Python中将其转换为yyyyMMdd格式?例如,我需要将20-Nov-2002转换为20021120。
2个回答

33

您可以使用datetime.datetime.strptime()按特定格式读取日期,然后使用.strftime()将其以所需格式写回。例如 -

>>> import datetime
>>> datetime.datetime.strptime('20-Nov-2002','%d-%b-%Y').strftime('%Y%m%d')
'20021120'

格式 -

%d - 两位数日期

%b - 三个字母月份缩写

%Y - 四位数年份

%m - 两位数月份

有关不同支持的格式的更多详细信息,请单击此处


2
您可以使用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))  

输出结果相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接