Вы всегда можете использовать try / catch, чтобы спроектировать способ чтения. Предположим, у вас есть все возможные форматы в списке formats
, тогда вы можете сделать
dt = None
for format in formats:
try:
dt = datetime.datetime.strptime(dt, format)
break
except:
pass
.Цикл, когда вы получаете правильный формат, в противном случае продолжайте пробовать возможные форматы.
В противном случае вы можете использовать внешнюю dateutil библиотечную функцию анализа parser.parse , которая может анализировать любую дату и времяформат независимо от формата
from dateutil import parser
print(parser.parse("1990-01-21 14:12:11"))
print(parser.parse("1990-01-21"))
#1990-01-21 14:12:11
#1990-01-21 00:00:00