почему strptime для двух ди git год для 69 возвращает 1969 в python? - PullRequest
0 голосов
/ 29 апреля 2020

Посмотрите на следующий код,

def expdate(date):
    _exp_date = datetime.strptime(date, "%m%y")

>>> expdate('1268')
2068-12-01 00:00:00
>>> expdate('1269')
1969-12-01 00:00:00

Необязательно, как на самом деле преодолеть это и получить 2070? Я буду проверять, используя только 2 цифры года.

1 Ответ

1 голос
/ 29 апреля 2020

Python зависит от библиотеки C платформы, которая, как правило, не имеет проблем 2000 года, поскольку все даты и время внутренне представлены в секундах с начала эпохи. Функции, принимающие struct_time, обычно требуют 4-х git года.

Когда принимаются 2-ди git года, они конвертируются в соответствии со стандартом POSIX или X / Open: значения 69-99 отображаются на 1969-1999, а значения 0–68 - сопоставлено с 2000–2068.

См .: Год 2000 (Y2K) выпусков в Python.

...