Я сталкиваюсь со странной ошибкой (?) В Ruby
Time.parse("David").to_i
возвращает "нет информации о времени в" Дэвиде "`
Time.parse("David1").to_i
возвращает "нет информации о времени в" David1"`
Однако
Time.parse("David10").to_i
возвращает 1570654800
Кажется, что любая строка с более чем 2 числами в конце умудряется пройти преобразование Time в Ruby. Это ошибка?
Я пытаюсь создать единственный метод, который может обрабатывать преобразование строк в метки времени, где это уместно, или просто обратно в строки, если преобразование невозможно, но в тех случаях, когда моя строка содержит числа 2+, она не срабатывает
if value.is_a? String
# if it's string of a date format
begin
Time.parse(value).to_i
rescue StandardError => e
value.downcase
end
# it's another object type - probably DateTime, Time or Date
else
value.nil? ? 0 : value.to_f
end