我有一个表示日期的字符串,例如:yymmdd
(例如,2017年9月1日的170901
),从datetime
对象获取。
我想用空格替换每个字段的前导零。str.replace()
不会这样做,因为它也会替换后面的零。
在字符串中用一个字符替换另一个字符,但只在某些位置(在本例中是在字符串的偶数索引中)的python方法是什么?
最佳答案
转换为datetime
对象,然后使用格式将前导空格(而不是零)仅应用于月份和日期:
from datetime import datetime
s = '170901'
s = '{dt:%y}{dt.month:2d}{dt.day:2d}'.format(dt=datetime.strptime(s, '%y%m%d'))
print(s)
#17 9 1
这也确保了超出天和月限制的值(例如42)不能被解析。
从
datetime
对象中,您可以轻松地切换到所需的任何格式,或前后切换初始字符串和后一字符串:>>> '{dt:%y}{dt.month:02d}{dt.day:02d}'.format(dt=datetime.strptime(s, '%y%m%d'))
'170901'
>>> '{dt:%y} {dt:%b} {dt.day:2d}'.format(dt=datetime.strptime(s, '%y%m%d'))
'17 Sep 1'
关于python - 仅在某些位置替换代表日期的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45996363/