Как распарсить 2022-08-20T20:30:00+00:0 ? python

Как распарсить вот эту строку "2022-08-20T20:30:00+00:00" отдельно на год-месяц-день, отдельно на час:минута:секунда?

То есть, должно быть:

дата: 2022-08-20

время: 20:30:00


Ответы (4 шт):

Автор решения: ZxNuClear

Ожидаемо, что длина этой строки всегда одинакова, поэтому как один из вариантов - брать значения срезом

x = "2022-08-20T20:30:00+00:0"
date = x[0:10]
time = x[11:19]

print('Дата: ' + date)
print('Время: ' + time)

Вывод:

Дата: 2022-08-20
Время: 20:30:00
→ Ссылка
Автор решения: Максим Красовский

Я бы разделил на то, что до "T" и после. Оставшееся на то, что до "+" и после. Первые два разделения и есть дата и время.

x = '2022-08-20T20:30:00+00:0'

parts = x.split('T')

date = parts[0]
print(date)

time = parts[1].split('+')[0]
print(time)
→ Ссылка
Автор решения: 65536kb

У вас дата и время в формате ISO, поэтому можно воспользоваться функцией datetime.fromisoformat()

from datetime import datetime

dt_string = '2022-08-20T20:30:00+00:00'
dt = datetime.fromisoformat(dt_string)
print(dt.date())  # 2022-08-20
print(dt.time())  # 20:30:00
→ Ссылка
Автор решения: Namerek

Предлагаю использовать парсер из библиотеки python-dateutil (Кстати она используется в pandas)

pip install python-dateutil

from dateutil.parser import parse

x = parse('2022-08-20T20:30:00+00:0')

y = x.date()
z = x.time()

print(y, z, sep='\n')
# 2022-08-20
# 20:30:00
→ Ссылка