| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > DateFormat Странная работа или так положено? |
| Автор: Mirkes 19.6.2014, 00:04 | ||||
| День добрый. Столкнулся с несколько странной проблемой. Клиент предоставил базу данных, в которой дата записана мало того, что в текстовом виде, так еще и в нескольких вариантах. Заготовил для всех вариантов форматы
И далее в нужном месте разбираю (знаю, что не блестящий вариант, но пока устраивает).
Формат "yyyy-MM-dd" добавился последним. (новая версия базы - новые форматы Далее налетел на проблему: форматы df4, df2, dfb, df4f, df4t как и ожидалось не могли прочитать дату 2012-03-18. А вот формат dfin смог, но не правильно - получилось 03.12.2011. В приведенном выше тексте я уже переставил два последних формата и это решило проблему. Осталось только недоумение, как формату dfin удалось прочитать текст не подходящий по структуре? Этот ошибка или так и должно быть? |
| Автор: LSD 20.6.2014, 11:39 | ||
В твем конкретном случае, поможет setLenient(false), но там есть еще одна проблема, парсер не требует точного соответсвия, т.е. строка "2012-03-18 abc" будет распарсена. Вот пример как с этим бороться:
на фишки Java 8 не обращай внимание, самое главное в том как создается SimpleDateFormat и parse(). |
| Автор: Mirkes 20.6.2014, 11:45 |
| Спасибо! Буду разбираться! |