Python Преобразовать строку YYYYMMDD в строку YYYY-MM-DD без использования Datetime - PullRequest
0 голосов
/ 06 мая 2020

Как преобразовать строку, например:

'20190501'

, в такую ​​строку, как:

'2019-05-01'

Без предварительного преобразования в datetime, например:

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

Приведенный выше код работает, однако, поскольку я начинаю и заканчиваю строкой, кажется, нет необходимости использовать datetime в процессе. Могу ли я преобразовать строку напрямую?

Ответы [ 5 ]

2 голосов
/ 06 мая 2020

если формат всегда ГГГГММДД, его можно преобразовать, получив условия следующим образом:

s="YYYYMMDD"
s=s[:4]+"-"+ s[4:6]+"-"+s[6:]
2 голосов
/ 06 мая 2020

Вы можете нарезать и отформатировать

>>> date = '20190501'
>>> newdate = "{}-{}-{}".format(date[:4],date[4:6],date[6:])
>>> newdate
'2019-05-01'
1 голос
/ 06 мая 2020

Попробуйте следующее:

before = '20190501'
print('before:', before)
after = ''.join((before[:4],'-',before[4:6],'-',before[6:]))
print('after:', after)
1 голос
/ 06 мая 2020

Если вы знаете, что формат фиксированный, это тривиально сделать с нарезкой строк.

d = '20190501'
print(d[0:4] + '-' + d[4:6] + '-' + d[6:8])
0 голосов
/ 06 мая 2020

Вы можете использовать строковое индексирование следующим образом.

old_date = '20200505'

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

print (new_date)

2020-05-05

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...