Как анализировать строки с двухзначным годом?

Мне нужно разобрать строки, представляющие шестизначные даты в формате yymmdd, где yy находится в диапазоне от 59 до 05 (с 1959 по 2005 год). Согласно документам time, Pivon default pivot year - 1969, который не будет работать для меня.

Есть ли простой способ переопределить сводный год, или вы можете предложить другое решение? Я использую Python 2.7. Спасибо!

13
задан blah238 17 мая '13 в 5:34
источник поделиться
4 ответов

Я бы использовал 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)
18
ответ дан mgilson 17 мая '13 в 5:47
источник поделиться

Подготовьте столетие к своей дате, используя свой собственный стержень:

  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date

а затем используйте strptime с директивой %Y вместо %Y.

1
ответ дан msw 17 мая '13 в 5:45
источник поделиться
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' )
1
ответ дан Pic 04 нояб. '16 в 15:53
источник поделиться

Вы также можете выполнить следующее:

today=datetime.datetime.today().strftime("%m/%d/%Y")
today=today[:-4]+today[-2:]
0
ответ дан anajem 26 апр. '17 в 8:47
источник поделиться

Другие вопросы по меткам или Задайте вопрос