我需要解析代表格式6位数的日期字符串yymmdd
在那里yy
的范围从59到05年(1959至2005年)。 按照time
模块文档,Python的默认轴今年是1969年,这将不适合我。
有一种简单的方法来覆盖枢轴年,或者你可以建议一些其他的解决办法? 我使用Python 2.7。 谢谢!
我需要解析代表格式6位数的日期字符串yymmdd
在那里yy
的范围从59到05年(1959至2005年)。 按照time
模块文档,Python的默认轴今年是1969年,这将不适合我。
有一种简单的方法来覆盖枢轴年,或者你可以建议一些其他的解决办法? 我使用Python 2.7。 谢谢!
我会使用datetime
和解析出来一般。 然后我会使用datetime.datetime.replace
的对象,如果它是你过去的天花板日期-调整回100年:
import datetime
dd = datetime.datetime.strptime(date,'%y%m%d')
if dd.year > 2005:
dd = dd.replace(year=dd.year-100)
前面加上世纪用自己的支点您的日期:
year = int(date[0:2])
if 59 <= year <= 99:
date = '19' + date
else
date = '20' + date
然后用strptime
与%Y
指令代替%y
。
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' )
您也可以执行以下操作:
today=datetime.datetime.today().strftime("%m/%d/%Y")
today=today[:-4]+today[-2:]
最近也有类似的情况下,结束了这个基本的计算和逻辑:
pivotyear = 1969
century = int(str(pivotyear)[:2]) * 100
def year_2to4_digit(year):
return century + year if century + year > pivotyear else (century + 100) + year