gpt4 book ai didi

python - 使用 strptime() 的 2 位数年份不能很好地解析生日

转载 作者:太空狗 更新时间:2023-10-29 22:10:07 25 4
gpt4 key购买 nike

考虑以下生日(作为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)

当然他们应该出生在同一个十年,但现在甚至不在同一个世纪!

根据docs这是完全有效的行为:

When 2-digit years are accepted, they are converted according to the POSIX or X/Open standard: values 69-99 are mapped to 1969-1999, and values 0–68 are mapped to 2000–2068.

我明白为什么要这样设置函数,但有没有办法解决这个问题?也许定义您自己的两位数年份范围?

最佳答案

如果你总是在生日时使用它,如果年份在现在之后,只需减去 100:

if d > datetime.now():
d = datetime(d.year - 100, d.month, d.day)

关于python - 使用 strptime() 的 2 位数年份不能很好地解析生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3283209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com