Я пытаюсь сохранить дату в удобочитаемом формате. Для этого я сохраняю и считываю строку, содержащую дату. Я использую date.min
для обозначения даты перед любой другой.
from datetime import datetime, date
d = date.min
s = datetime.strftime(d, "%Y-%m-%d")
print(s)
# 1-01-01
d2 = datetime.strptime(s, "%Y-%m-%d")
# ValueError: time data '1-01-01' does not match format '%Y-%m-%d'
Однако, когда я пытаюсь проанализировать дату, используя strptime
, которая была выведена strftime
, я получаю только ошибку. Кажется, что strptime
ожидает ведущие нули, такие как 0001
, которые strftime не выводит.
Можно было бы использовать None
. Есть ли другие способы обойти то, что мне кажется ошибкой?
format
? - person Mandera   schedule 03.01.20210001-01-01
, а не1-01-01
(Python 3.9). Такжеs=f'{date.min:%Y-%m-%d}'
является более прямым способом создания строки. - person Mark Tolonen   schedule 03.01.2021format
у вас лишний, достаточноs = datetime.strftime(d, "%Y-%m-%d")
- person Mandera   schedule 03.01.20211
в Linux, но0001
в Windows - person Nick   schedule 03.01.2021