如何用2位数年份解析字符串日期?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用2位数年份解析字符串日期?相关的知识,希望对你有一定的参考价值。

我需要以yymmdd格式解析代表6位数日期的字符串,其中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

以上是关于如何用2位数年份解析字符串日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何用格式解析 jqwidgets (jqx) 日期?

可以将字符串日期转换为mysql DateTime吗?

如何用jQuery实现输入身份证号码后,出生日期自动生成

java把8位数的日期字符串存进一个长为3的字节数组里面,再转出来也能是存进去时的字符串

如何用EXCEL VBA批量提取JPG文件日期时间信息到表格中?

Oracle常用日期函数