strftime
требуется время / дата для конвертации, и она будет использовать текущую дату и время, если вы их не предоставите. Предыдущее значение dat
не имеет значения - эта информация не видна strftime
.
Вам необходимо предоставить информацию о времени, которую strftime
отформатирует, как кортеж, который вы можете получить разбор исходная строка. Для этого используйте strptime
(f для формата, p для синтаксического анализа).
Итак:
dmy = '07/10/2019'
ymd = time.strftime('%Y-%m-%d', time.strptime(dmy, '%d/%m/%Y'))
# ^^^^^^^^ ^^^^^^^^
# output schema input schema
# now ymd is '2019-10-07'
(Или вы можете использовать модуль datetime
, как в другом ответе. Таким образом, синтаксический анализ дает вам объект, который имеет метод для форматирования назад - так что вы можете записать всю операцию «по порядку» в строке. Но общий принцип тот же: вам нужноразберите, затем отформатируйте, и вам нужно указать схему на каждой стороне.)