как форматировать дату в ISO с помощью python?

У меня есть некоторые даты, формат которых – d / m / yyyy, например: 2/28/1987 Я хотел бы иметь его в формате ISO: 1987-02-28
Я думаю, мы можем сделать это таким образом, но это кажется немного тяжелым:

str_date = '2/28/1987' arr_str = re.split('/', str_date) iso_date = arr_str[2]+'-'+arr_str[0][:2]+'-'+arr_str[1] 

Есть ли другой способ сделать это? (формат ячейки с редактором электронных таблиц не работает)

большое спасибо

Вы можете использовать модуль datetime :

 datetime.datetime.strptime(str_date, '%m/%d/%Y').date().isoformat() 

или, как действующий код:

 >>> import datetime >>> str_date = '2/28/1987' >>> datetime.datetime.strptime(str_date, '%m/%d/%Y').date().isoformat() '1987-02-28' 

Я бы использовал модуль datetime для его анализа:

 >>> from datetime import datetime >>> date = datetime.strptime('2/28/1987', '%m/%d/%Y') >>> date.strftime('%Y-%m-%d') '1987-02-28' 

То, что у вас есть, очень похоже на то, как я его напишу, единственным существенным улучшением, которое я могу предложить, является использование простого старого split вместо re.split , поскольку вам не требуется регулярное выражение:

 arr_str = str_date.split('/') 

Если вам нужно было сделать что-то более сложное, я бы порекомендовал time.strftime , но это значительно дороже, чем избиение строк.