Время разбора в Ruby 1.9.2 не совпадает с Ruby 1.8.7?
Разбор этого в ruby 1.8.7
time_str = "Sun Feb 01 0111 00:00:00 GMT+0530 (IST)"<br />
Time.parse(time_str)<br />
output
Tue Feb 01 00:00:00 +0530 2011
рубин 1.9.2
time_str = "Sun Feb 01 0111 00:00:00 GMT+0530 (IST)"<br />
Time.parse(time_str)<br />
output <br />
0111-02-01 00:00:00 +0553
Не могли бы вы сказать мне, в чем именно проблема?
Это как-то связано с тем, как Time анализирует в ruby 1.9.2, как показано ниже?
Time.parse(time) {|y| 0 <= y && y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}
1 ответ
Ruby 1.9.2 дает вам дату 1 февраля 111 г. н.э. (потому что это и есть эта дата).
http://www.wolframalpha.com/input/?i=February+1st+111 AD%3F. 1.8.7, я полагаю, не смог обработать даты, которые давным-давно.
Ruby 1.9.2 работает правильно.
Если ваш вклад написан таким образом, но он действительно должен представлять 2011 год, то:
- Входные данные неправильно отформатированы, так как они указывают на год 111 AD
- Вам придется предварительно обработать входную строку, чтобы сделать ее правильным для анализа