Per этот отчет об ошибках, возможность разбора дат mm/dd/yy была умышленно удалена в 1.9. Создатель Ruby, Юкихиро Мацумото говорит:
Сам формат
"dd/dd/dd" культурно зависимой и неоднозначной. Это составляет yy/mm/dd в Японии (и другие страны), мм/дд/гг в США, дд/мм/гг в европейских странах, не так ли? В некоторых случаев, вы можете сказать им случайно, но мы не должны полагаться на удачу в общие случаи. Я считаю, что это разбор синтаксиса этого формата отключен в 1.9.
Как предлагает hansengel, вы можете использовать Date.strptime вместо этого.
Ответ 3
У меня всегда было трудно разобрать даты с помощью Date.parse. Мое решение не жалеет chronic gem. Мне также нравится функция strptime, найденная в другом ответе.
Ответ 4
Мне нравится american_date gem для выполнения этого...
Ответ 5
class << self
def parse_with_us_format(date, *args)
if date =~ %r{^\d+/\d+/(\d+)$}
Date.strptime date, "%m/%d/#{$1.length == 4 || args.first == false ? '%Y' : '%y'}"
else
parse_without_us_format(date, *args)
end
end
alias_method_chain :parse, :us_format
end