之間解析使用Ruby 1.8.7:的差異日期字符串的Ruby 1.9.3和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?
Ruby只能猜測日期格式如此之好,而美式格式由於含糊不清而令人生氣。 '01/02/03'是......究竟是什麼? 'YY/MM/DD'? 'DD/MM/YY'? 'MM/DD/YY'? – tadman 2012-02-28 15:19:45
因爲有問題的代碼是使用Rails的'String#to_time',它使用'Time.parse'我正在尋找一個解決方案來改變'Time.parse'的工作方式。如果它不是現有的代碼,我肯定會使用'Time.strptime' - 更強大。感謝您指出ruby-american_date寶石! – arikfr 2012-02-28 15:34:53