2014-07-16 3 views
5

Ich würde erwarten, dass dieser Code mir einen ArgumentError: invalid date Fehler gibt. In Ruby 2.0.0 irb:Ruby Date.strptime erzwingt keine 4-stellige Jahr

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

Mache ich etwas falsch oder wird Ruby ein 2-stellige Jahr sogar akzeptieren, wenn ich %Y angeben?

Ich schaue auf Benutzereingaben testen. In diesem Fall erwartet mein Programm es in der %Y-%m-%d und das Eingabedatum wurde im falschen Format "eingegeben", aber strptime sagt, es ist in Ordnung.

+0

[Dokument] (http://ruby-doc.org/stdlib-2.1.1/libdoc/date/rdoc/Date.html#method-i-strftime) sagt vierstellig mindestens . Was Sie berichten, geht dagegen. – sawa

+0

Es ist irreführend, eine Zeichenfolge wie "05 -10-2014" zu verwenden. Verwende ''05 -10-20''. – sawa

+0

Wie ist es irreführend, ein 4-stelliges Jahr zu verwenden? –

Antwort