Ich analysiere Daten von einer externen Quelle (die im iso8601 Format sein müssen) und in ein seltsames Szenario laufen.Ruby Parsing von iso8601 Daten scheint gebrochen
require 'date'
Date.iso8601('2000-05-01') #<Date: 2000-05-01 ((2451666j,0s,0n),+0s,2299161j)>
Date.iso8601('200-05-01') #<Date: 2100-05-01 ((2488190j,0s,0n),+0s,2299161j)>
Date.iso8601('20-05-01') #<Date: 2020-05-01 ((2458971j,0s,0n),+0s,2299161j)>
Ich würde erwarten, dass die letzten 2 Anrufe mit ungültigem Argumente Ausnahmen sprengen, weil die Daten nicht im ISO8601-Format sind. Ist das ein Fehler in Ruby?
ruby --version
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin14]
Warum sind sie ungültig? – sawa
Vielleicht wusste Ruby nur, dass Leute versuchen würden, es zu kaputt zu machen, also baute es Funktionen, um zu verhindern, dass es kaputt ging? ;) – 13aal
@sawa ISO-8601 erfordert vierstellige Jahre –