次の誕生日を考えてみましょう (としてdob
):
- 1968 年 6 月 1 日
- 1969 年 6 月 1 日
Python で解析すると、次のdatetime.strptime(dob, '%d-%b-%y')
ようになります。
datetime.datetime(2068, 6, 1, 0, 0)
datetime.datetime(1969, 6, 1, 0, 0)
もちろん、彼らは同じ 10 年に生まれたはずですが、今では同じ世紀でもありません。
ドキュメントによると、これは完全に有効な動作です。
2 桁の年が受け入れられる場合、それらは POSIX または X/Open 標準に従って変換されます。値 69 から 99 は 1969 から 1999 にマップされ、値 0 から 68 は 2000 から 2068 にマップされます。
関数がこのように設定されている理由は理解していますが、これを回避する方法はありますか? おそらく、2 桁の年の独自の範囲を定義することでしょうか?