Поскольку у вас есть два формата, которые взаимозаменяемы почти для половины дат (format='%d-%m-%Y %H:%M %p
'и format='%m-%d-%Y %H:%M %p'
), эта задача логически, математически и доказуемо невозможна. Вы не можете определить, какой формат используется между этими двумя для любой даты любого месяца до 13 числа этого месяца. результирующий формат будет неоднозначным относительно того, является ли день или месяц первым элементом в формат, и поэтому невозможно транспонировать без каких-либо грубых предположений о формате, который вы используете. Эти предположения могут работать нормально, но также вероятно, что он будет анализировать все даты неправильно. Это также верно в отношении подхода на основе Excel, который вы используете в настоящее время. Пожалуйста, проверьте каждый элемент данных, созданных этим методом, поскольку он, вероятно, содержит неправильно проанализированную информацию.
Если вы выясните, какой формат вы на самом деле используете, или каким-либо другим способом определить подходящий формат, не стесняйтесь задавать другой вопрос, и я уверен, что сообщество поможет вам.
Если это просто строки, вы можете удалить из них am
и pm
с помощью следующего:
# get your date somehow.
my_date = "01-29-2018 15:53 pm"
if my_date.endswith(" pm") or my_date.endswith(" am"):
my_date = my_date[:-3]
print(my_date)
>>> 01-29-2018 15:53