考虑以下生日(如dob
):
- 68 年 6 月 1 日
- 69 年 6 月 1 日
当用 Python 解析时,datetime.strptime(dob, '%d-%b-%y')
将产生:
datetime.datetime(2068, 6, 1, 0, 0)
datetime.datetime(1969, 6, 1, 0, 0)
好吧,他们当然应该在同一个十年出生,但现在甚至不是在同一个世纪!
根据文档,这是完全有效的行为:
当接受 2 位数年份时,它们会根据 POSIX 或 X/Open 标准进行转换:值 69-99 映射到 1969-1999,值 0-68 映射到 2000-2068。
我理解为什么要这样设置该功能,但有没有办法解决这个问题?也许通过定义您自己的 2 位数年份范围?