Python 在不使用Datetime的情况下将YYYYMMDD字符串转换为YYYY-MM-DD字符串。

问题描述 投票:0回答:2

我怎么能把一个字符串,如:

'20190501'

转换为一个字符串,比如:

'2019-05-01'

而不先转换为datetime等字符串。

from datetime import datetime
datetime.strptime('20190501', '%Y%m%d').strftime('%Y-%m-%d'))

上面的代码可以用,但是因为我是以字符串开头和结尾的,所以似乎没有必要使用... ... datetime 的过程中。可以直接转换字符串吗?

python string datetime
2个回答
2
投票

如果格式总是YYYYMMDD,可以通过以下方式获取术语进行转换。

s="YYYYMMDD"
s=s[:4]+"-"+ s[4:6]+"-"+s[6:]

2
投票

你可以把它切成片并进行格式化

>>> date = '20190501'
>>> newdate = "{}-{}-{}".format(date[:4],date[4:6],date[6:])
>>> newdate
'2019-05-01'

1
投票

如果你知道格式是固定的,那么用字符串切片的方式来做就很简单了。

d = '20190501'
print(d[0:4] + '-' + d[4:6] + '-' + d[6:8])

1
投票

试试这个。

before = '20190501'
print('before:', before)
after = ''.join((before[:4],'-',before[4:6],'-',before[6:]))
print('after:', after)

0
投票

你可以使用字符串索引,如下:

old_date = '20200505'

new_date = old_date[:4]+'-'+old_date[4:6]+'-'+old_date[6:8] 。

打印(new_date)

2020-05-05

© www.soinside.com 2019 - 2024. All rights reserved.