我试图在成功解析日期时突破这个循环。
def bad_date(date)
BAD_DATES.each do |bad_date|
begin
DateTime.strptime(date.tr(' ', '').tr(':', ''), bad_date)
rescue ArgumentError
return nil # else return good date?
end
end
end
BAD_DATES
看起来像这样:
BAD_DATES = ['%H%M%p%m/%d/%Y', '%H%M%p%d/%m/%Y', '%l%M%m/%d/%Y',
'%H%p%m/%d/%Y', '%H%M%m/%d/%Y'].freeze
如何退回第一个"好"该方法的日期?
答案 0 :(得分:2)
这个怎么样?:
def bad_date(date)
BAD_DATES.each do |bad_date|
begin
return DateTime.strptime(date.tr(' ', '').tr(':', ''), bad_date)
rescue ArgumentError
# keep going
end
end
return nil
end