This question already has answers here:
2 digit years using strptime() is not able to parse birthdays very well
(3个答案)
6年前关闭。
我有一个出生日期字段,例如:
日期= '07 -JUL-50'
当我想得到这一年时,我得到了:
是否有一种优雅的方式获得“ 1950”?
谢谢
希望能有所帮助。
(3个答案)
6年前关闭。
我有一个出生日期字段,例如:
日期= '07 -JUL-50'
当我想得到这一年时,我得到了:
my_date = datetime.datetime.strptime(date, "%d-%b-%y")
>>> my_date.year
2050
是否有一种优雅的方式获得“ 1950”?
谢谢
最佳答案
文档说:
接受两位数的年份时,将根据
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
希望能有所帮助。
关于python - 从字符串'07 -JUL-50'获取年份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17613656/
10-11 03:38