cas*_*asr 6 python 2-digit-year strptime
考虑以下生日(as dob):
用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.
我理解为什么函数设置这样,但是有办法解决这个问题吗?也许定义自己的两位数年份范围?
Mat*_*hen 12
如果你总是将它用于生日,那么如果年份现在已经过去,则减去100:
if d > datetime.now():
d = datetime(d.year - 100, d.month, d.day)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4113 次 |
| 最近记录: |