Как привести 2 типа дат в один?
Есть список -
a = ['2020-09-06 15:52:02','','05.08.2020 9:03:13','','','2020-12-06 17:52:02','2020-01-06 18:52:02','2020-10-06 12:52:02','05.09.2020 13:04:13','05.03.2020 19:03:13','','','2020-07-06 22:52:02','05.12.2020 19:03:13','','05.01.2020 16:03:13','2020-03-06 1:52:02','05.09.2020 3:03:13','05.09.2020 13:03:13','','','','','05.09.2020 4:03:13','2020-09-06 23:52:02''','']
В списке a есть два типа дат. Это 2020-09-05 15:52:02 и 05.09.2020 15:52:02. Так же в нем есть пустые элементы. Надо все даты привести к этому типу (31.08.2020 23:06:51).
Результат должен быть таким -
a = ['06.09.2020 15:52:02','','05.08.2020 9:03:13','','','06.12.2020 17:52:02','06.01.2020 18:52:02','06.10.2020 12:52:02','05.09.2020 13:04:13','05.03.2020 19:03:13','','','06.07.2020 22:52:02','05.12.2020 19:03:13','','05.01.2020 16:03:13','06.03.2020 1:52:02','05.09.2020 3:03:13','05.09.2020 13:03:13','','','','','05.09.2020 4:03:13','06.09.2020 23:52:02''','']
Ответы (2 шт):
Автор решения: entithat
→ Ссылка
from datetime import datetime
def conv(date):
try:
return datetime.strptime(date, '%Y-%m-%d %H:%M:%S').strftime('%d.%m.%Y %H:%M:%S')
except ValueError:
return date
a = ['2020-09-06 15:52:02','','05.08.2020 9:03:13','','','2020-12-06 17:52:02','2020-01-06 18:52:02','2020-10-06 12:52:02','05.09.2020 13:04:13','05.03.2020 19:03:13','','','2020-07-06 22:52:02','05.12.2020 19:03:13','','05.01.2020 16:03:13','2020-03-06 1:52:02','05.09.2020 3:03:13','05.09.2020 13:03:13','','','','','05.09.2020 4:03:13','2020-09-06 23:52:02''','']
print(list(map(conv, a)))
# ['06.09.2020 15:52:02', '', '05.08.2020 09:03:13', '', '', '06.12.2020 17:52:02', '06.01.2020 18:52:02', '06.10.2020 12:52:02', '05.09.2020 13:04:13', '05.03.2020 19:03:13', '', '', '06.07.2020 22:52:02', '05.12.2020 19:03:13', '', '05.01.2020 16:03:13', '06.03.2020 01:52:02', '05.09.2020 03:03:13', '05.09.2020 13:03:13', '', '', '', '', '05.09.2020 04:03:13', '06.09.2020 23:52:02', '']
Автор решения: strawdog
→ Ссылка
Используйте pandas:
import pandas as pd
a = ['2020-09-06 15:52:02','','05.08.2020 9:03:13','','','2020-12-06 17:52:02','2020-01-06 18:52:02','2020-10-06 12:52:02','05.09.2020 13:04:13','05.03.2020 19:03:13','','','2020-07-06 22:52:02','05.12.2020 19:03:13','','05.01.2020 16:03:13','2020-03-06 1:52:02','05.09.2020 3:03:13', '05.09.2020 13:03:13','','','','','05.09.2020 4:03:13','2020-09-06 23:52:02''','']
df = pd.DataFrame(a)
res = df[0].apply(lambda x: pd.to_datetime(x).
strftime('%d.%m.%Y %H:%M:%S') if len(x) else '').to_list()
соответственно, получим res:
['06.09.2020 15:52:02', '', '08.05.2020 09:03:13', '', '', '06.12.2020 17:52:02', '06.01.2020 18:52:02', '06.10.2020 12:52:02', '09.05.2020 13:04:13', '03.05.2020 19:03:13', '', '', '06.07.2020 22:52:02', '12.05.2020 19:03:13', '', '01.05.2020 16:03:13', '06.03.2020 01:52:02', '09.05.2020 03:03:13', '09.05.2020 13:03:13', '', '', '', '', '09.05.2020 04:03:13', '06.09.2020 23:52:02', '']