2014-07-16 20 views
5

Tôi hy vọng mã này sẽ cung cấp cho tôi lỗi ArgumentError: invalid date. Trong Ruby 2.0.0 IRB:Ruby Date.strptime không thực thi 4 chữ số năm

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

Am tôi làm điều gì đó sai hay Ruby sẽ chấp nhận một năm 2 chữ số ngay cả khi tôi chỉ định %Y?

Tôi đang xem xét đầu vào của người dùng thử nghiệm. Trong trường hợp này, chương trình của tôi đang mong đợi nó trong số %Y-%m-%d và ngày nhập được "nhập" theo định dạng sai, nhưng strptime cho biết là không sao.

+0

Các [tài liệu] (http://ruby-doc.org/stdlib-2.1.1/libdoc/date/rdoc/Date.html#method-i-strftime) cho biết bốn chữ số tối thiểu . Những gì bạn báo cáo đi ngược lại. – sawa

+0

Việc sử dụng chuỗi như ''05 -10-2014'' là sai lầm. Sử dụng ''05 -10-20''. – sawa

+0

Làm thế nào để gây hiểu nhầm khi sử dụng năm có 4 chữ số? –

Trả lời

Các vấn đề liên quan