2015-05-28 4 views
0

У меня свидание с БД в следующем формате - «1973-06-15» Когда я пытаюсь создать объект даты срубин ошибка - неверная дата

dob = DateTime.strptime(user.date_of_birth.to_s, "%Y-%m-%d") 

Я всегда получаю

invalid date 

погрешность. Вывод даты обычно показывает правильную дату. Как правильно разобрать даты в этом случае?

+0

, что ваш тип данных date_of_birth колонки? –

+0

Добавьте вывод 'user.date_of_birth.to_s' для регистрации и предоставления его здесь. –

+0

Прекрасно работает для меня; Каков тип данных? Что возвращает 'user.date_of_birth.to_s'? –

ответ

1

Предполагая, что user.date_of_birth является DateTime (или дата) объекта, вы должны быть в состоянии просто сделать следующее:

dob = user.date_of_birth.strftime("%Y-%m-%d") 
+0

Это дает мне undefined метод 'strftime 'для nil: NilClass – Deez

+0

@Deez Итак ... дата' nil'. Используйте 'try' или' andand'. –

+0

Как @DaveNewton сказал, тогда ваша дата равна нулю. 'user.try (: date_of_birth)' предотвратит ошибку, но вам нужно выяснить, почему этот метод возвращает 'nil'. –

Смежные вопросы