Skip to main content
 首页 » 编程设计

python之替换字符串中的日期时间字符

2025年05月04日25soundcode

考虑以下日期示例 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