Я пытаюсь разобрать некоторые даты с плохим форматированием в Ruby. Я решил откинуть часть метода на наличие am
или pm
, поэтому я разделил там строку.Синхронизация дат в Ruby
def bad_date(date)
if date.match(/m\d/i)
date_time = date.split('m', 2).reverse
time = date_time.include?('m')
date = date_time - time
else
date
end
end
Он развалился в нужном месте и в обратном массив это все хорошо, но это занимает m
с ним. Как я могу его заменить? Или как я могу избежать этого полностью?
По существу я пытаюсь преобразовать некоторые даты, как это:
dates
=> ["0900am06/13/2015", "0900 am06/13/2015", "0900am 06/13/2015", "0900 am 06/13/2015"]
В это:
2015-06-13 09:00 AM
с приемлемой погрешностью.
[Это SO ответ] (http://stackoverflow.com/questions/6957858/split-string-in-list-but-keep-the-split-pattern) имеет решение для сохранения разделителя при разбиении строки. Он может быть перенастроен для сохранения 'm'. Надеюсь, поможет! – Zoran