[ruby-core:75834] [Ruby trunk Bug#12297] Ruby stdlib date can parse non-existent date with year 0

From: the.codefolio.guy@...
Date: 2016-06-03 17:01:56 UTC
List: ruby-core #75834
Issue #12297 has been updated by Noah Gibbs.

File no_year_0.patch added

Ruby has a lot of different time-parsing and date-parsing code. But for Date's strptime specifically, this is an easy fix. Patch is attached.


----------------------------------------
Bug #12297: Ruby stdlib date can parse non-existent date with year 0
https://bugs.ruby-lang.org/issues/12297#change-59012

* Author: t b
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Ruby date lib can parse date with year 0
`$ pry
[1] pry(main)> shitdate=Date.strptime('0000-01-07','%Y-%m-%d')
=> #<Date: 0000-01-07 ((1721064j,0s,0n),+0s,2299161j)>
[2] pry(main)> shitdate.year
=> 0
[3] pry(main)> ` 

There is no year 0 in gregorian and julian calendar between 1 BC and 1 AD
It should raise ArgumentError like it do when month/day number is 0.

---Files--------------------------------
no_year_0.patch (1.62 KB)


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

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next