Метод parse
пытается найти соответствие даты или форматы даты и время, затем проанализируйте строку, чтобы вернуть значения, используемые для создания новой даты или даты. Существует множество различных форматов, которые он поддерживает, что удобно, однако процесс сканирования для поиска соответствия замедляет время синтаксического анализа.
Кроме того, некоторые используемые форматы не обязательно «подходят». Рассмотрим, что здесь происходит:
Date.parse '31/01/2001'
=> #<Date: 2001-01-31 ((2451941j,0s,0n),+0s,2299161j)>
дата строка в '%d/%m/%Y'
(день, месяц, год) формат разбирается, хотя это не распространено в США, потому что Руби не США ориентированный язык. Обращение первых двух полей приводит к:
Date.parse '01/31/2001'
ArgumentError: invalid date
from (irb):4:in `parse'
from (irb):4
from /Users/greg/.rbenv/versions/2.1.5/bin/irb:11:in `<main>'
irb(main):005:0> Date.parse '31/01/2001'
Вместо 'sub' или' gsub' используйте 'tr ('.', '')'. Это быстрее и выполнит то же самое. –
... или 'my_string.delete ('.')'. –