使用 Ruby 1.8.7 版本:
>> require 'time'
>> Time.parse '01/28/2012'
=> Sat Jan 28 00:00:00 +0200 2012
>> Time.parse '28/01/2012'
=> ArgumentError: argument out of range
使用 Ruby 1.9.3 版本:
>> require 'time'
>> Time.parse '28/01/2012'
=> 2012-01-28 00:00:00 +0200
>> Time.parse '01/28/2012'
=> ArgumentError: argument out of range
看起来在Ruby 1.8.7中它接受的是美国日期格式(月/日/年),而在Ruby 1.9.3中它仅接受非美国日期格式(日/月/年)。
有没有办法将此行为更改为像Ruby 1.8.7一样?
01/02/03
到底是什么?YY/MM/DD
?DD/MM/YY
?MM/DD/YY
? - tadmanString#to_time
,它使用了Time.parse
,所以我一直在寻找改变Time.parse
工作方式的解决方案。如果这不是现有的代码,我肯定会使用Time.strptime
——更加健壮。感谢您指出ruby-american_date gem! - arikfr