考虑以下日期示例 str:
'20180101,20180102,20180103,20180104,20180105,20180106,20180107,20180108,20180109,20180110,20180111,20180112,2018011812011,2018011812011,2012 80116,20180117,20180118,20180119,20180120,20180121,20180122 ,20180123,20180124,20180125,20180126,20180127,20180128,20180129,20180130,20180131,20180201,20180202,20180203,20180204,5,20180202020 7,20180208'.
使用模块中的 .replace('2018','2018-') 或 re.sub('2018', '2018-', foo_string) re,日期更改为 2018-0101。但是,我想为一系列日期插入一个连字符。我尝试了以下 re.sub('{}'.format(range(2018,2019)), '2018-', foo_string) 无济于事。返回的字符串没有任何更改。作为引用,我想为连字符涵盖的年份是 1981 年到 2018 年。
此外,我不确定如何以干净的方式在月份和日期之间插入连字符。非常感谢按照这些方向提供帮助。
请您参考如下方法:
我认为使用datetime会更pythonic,
from datetime import datetime
date_list = '20180101,20180102,20180103,20180104,20180105,20180106,20180107,20180108'
def new_date_format(old_format_str):
date_format = datetime.strptime(old_format_str, '%Y%m%d')
new_format = date_format.strftime("%Y-%m-%d")
return new_format
for date_str in date_list.split(","):
print(new_date_format(date_str))
这将产生以下输出:
2018-01-01
2018-01-02
2018-01-03
2018-01-04
2018-01-05
2018-01-06
2018-01-07
2018-01-08
