Ruby Date.strptime不强制执行4位数年份

J G*_*ham 5 ruby date strptime

我希望这段代码能给我一个ArgumentError: invalid date错误.在Ruby 2.0.0 irb中:

irb(main):003:0> Date.strptime('05-10-2014', '%Y-%m-%d')
=> #<Date: 0005-10-20 ((1723177j,0s,0n),+0s,2299161j)>
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者即使我指定了Ruby也会接受2位数的年份%Y

我正在考虑测试用户输入.在这种情况下,我的程序期望它在%Y-%m-%d输入日期以错误的格式"输入",但是strptime说它没关系.

inf*_*sed 7

去年为这个问题打开了一个Ruby bug,但它被拒绝了.我猜Ruby团队认为这是有效的行为.

https://bugs.ruby-lang.org/issues/8941