Как анализировать строки с двухзначным годом?
Мне нужно разобрать строки, представляющие шестизначные даты в формате yymmdd
, где yy
находится в диапазоне от 59 до 05 (с 1959 по 2005 год). Согласно документам time
, Pivon default pivot year - 1969, который не будет работать для меня.
Есть ли простой способ переопределить сводный год, или вы можете предложить другое решение? Я использую Python 2.7. Спасибо!
Ответы
Ответ 1
Я бы использовал datetime
и разбирал его нормально. Затем я использовал бы datetime.datetime.replace
на объекте, если он прошел через вашу дату потолка. - Отрегулируйте его на 100 yrs.:
import datetime
dd = datetime.datetime.strptime(date,'%y%m%d')
if dd.year > 2005:
dd = dd.replace(year=dd.year-100)
Ответ 2
Подготовьте столетие к своей дате, используя свой собственный стержень:
year = int(date[0:2])
if 59 <= year <= 99:
date = '19' + date
else
date = '20' + date
а затем используйте strptime
с директивой %Y
вместо %Y
.
Ответ 3
import datetime
date = '20-Apr-53'
dt = datetime.datetime.strptime( date, '%d-%b-%y' )
if dt.year > 2000:
dt = dt.replace( year=dt.year-100 )
^2053 ^1953
print dt.strftime( '%Y-%m-%d' )
Ответ 4
Вы также можете выполнить следующее:
today=datetime.datetime.today().strftime("%m/%d/%Y")
today=today[:-4]+today[-2:]
Ответ 5
Недавно был похожий случай, закончились вот этим базовым расчетом и логикой:
pivotyear = 1969
century = int(str(pivotyear)[:2]) * 100
def year_2to4_digit(year):
return century + year if century + year > pivotyear else (century + 100) + year