我想从字符串中提取日期:
15/Nov/2013
05/Jan/2014
然后像这样重新格式化
15/11/2013
05/01/2014
是否有现成的函数(已经“知道”月份:一月、二月等)?
最佳答案
如果您的语言环境是英语,那么标准的 datetime
模块将为您解析月份缩写:
import datetime
date = datetime.datetime.strptime(inputvalue, '%d/%b/%Y').date()
C(英文月份名称)是默认语言环境,因此这应该适用于您未明确设置 Python 语言环境的任何地方。只要你不打电话 locale.setlocale()
或 locale.resetlocale()
在任何您可以依靠上述方法正常工作的地方。
然后将这些格式化回不同的格式是微不足道的:
date.strftime('%d/%m/%Y')
演示:
>>> datetime.datetime.strptime('15/Nov/2013', '%d/%b/%Y').date()
datetime.date(2013, 11, 15)
>>> datetime.datetime.strptime('05/Jan/2014', '%d/%b/%Y').date()
datetime.date(2014, 1, 5)
>>> datetime.datetime.strptime('15/Nov/2013', '%d/%b/%Y').date().strftime('%d/%m/%Y')
'15/11/2013'
>>> datetime.datetime.strptime('05/Jan/2014', '%d/%b/%Y').date().strftime('%d/%m/%Y')
'05/01/2014'
关于python - 从字符串中提取日期 ("05/Jan/2014"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20981064/