From: sawadatsuyoshi@... Date: 2014-12-18T03:32:56+00:00 Subject: [ruby-core:66931] [ruby-trunk - Bug #10614] strpdate and Leap Days Issue #10614 has been updated by Tsuyoshi Sawada. `'02/29/2012'` clearly does not match `'%m/%d'`. ---------------------------------------- Bug #10614: strpdate and Leap Days https://bugs.ruby-lang.org/issues/10614#change-50474 * Author: Corey Woodcox * Status: Open * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- I'm experiencing an issue parsing dates and leap days. When the format string includes the year, everything works as expected: ~~~ >> Date.strptime('02/29/2012', '%m/%d/%Y') => # ~~~ Parsing a date without a year assumes this year: ~~~ >> Date.strptime('01/01', '%m/%d') => # ~~~ Here's my issue, parsing a leap day without a year assumes I mean this year, and this year is not a leap year: ~~~ >> Date.strptime('02/29/2012', '%m/%d') ArgumentError: invalid date ~~~ Thinking about it now, I'm not sure what the expected behavior should be. Python assumes 1900 under the same circumstances, and it doesn't throw an exception. -- https://bugs.ruby-lang.org/