мало что может сделать программа, чтобы волшебным образом определить тип короткого формата даты.
Если вы дадите программе дату, например 09/06/08, это может означать:
- 9 июня 2008 г. или
- 6 сентября 2008 г. или, может быть, даже
- 8 июня 2009 г.
Когда Ruby анализирует даты из строки, он будет использовать поставщиков формата по умолчанию, чтобы определить, в каком формате находится дата. Для получения дополнительной информации см. Документацию Ruby DateTime .
Я думаю, что в вашей ситуации лучше всего попытаться упорядочить все ваши записи по группам, где у каждой группы есть определенный формат даты. Если вы сами не можете вручную определить разницу между американскими и британскими датами по какому-либо критерию, к сожалению, программа тоже не сможет.
Однако ... если каждый пользователь из определенной локали, и вы можете сделать (довольно большое) предположение, что каждая дата, которую они загружают в CSV, соответствует стандартам формата даты в их стране, вы могли бы использовать API интернационализации. Технически должно быть возможно получить локаль этого конкретного пользователя, а затем загрузить правильные данные i18n (с соответствующим форматером даты) и проанализировать файл, используя предоставляемый i18n форматтер. Прочтите руководство Rails Internationalization API , чтобы получить представление о том, как вы можете использовать API i18n.