从字符串'07 -JUL-50获得年份

时间:2013-07-12 11:13:02

标签: python datetime

我的出生日期字段如下:     date = '07 -JUL-50'

当我想要获得这一年时,我得到了这个:

my_date = datetime.datetime.strptime(date, "%d-%b-%y")
>>> my_date.year
2050

有没有一种优雅的方式获得'1950'??

THX

1 个答案:

答案 0 :(得分:3)

文档说:

  

当接受2位数年份时,它们会根据时间转换   POSIX或X / Open标准:值69-99映射到1969-1999,和   值0-68映射到2000-2068。

这就是你看到2050年的原因。

如果您想要1950,则取决于特定方案中允许的日期。例如。如果日期值只能是过去的日期,您可以执行以下操作:

import datetime


def get_year(date):
    my_date = datetime.datetime.strptime(date, "%d-%b-%y")
    now = datetime.datetime.now()

    if my_date > now:
        my_date = my_date.replace(year=my_date.year - 100)
    return my_date.year


print get_year('07-JUL-50')  # prints 1950
print get_year('07-JUL-13')  # prints 2013
print get_year('07-JUL-14')  # prints 1914

希望有所帮助。