我的出生日期字段如下: date = '07 -JUL-50'
当我想要获得这一年时,我得到了这个:
my_date = datetime.datetime.strptime(date, "%d-%b-%y")
>>> my_date.year
2050
有没有一种优雅的方式获得'1950'??
THX
答案 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
希望有所帮助。