Try different formats
require 'date' TRY_FORMATS = ['%d/%m/%y', '%Y %m %d'] def try_to_parse(s) parsed = nil TRY_FORMATS.each do |format| begin parsed = Date.strptime(s, format) break rescue ArgumentError end end return parsed end puts try_to_parse('1/10/07').to_s # => "2007-10-01" puts try_to_parse('2007 1 10').to_s # => "2007-01-10"