Разобрать дату с возможным одноразрядным месяцем/днем/часом, используя java.text.SimpleDateFormat

В проекте с Talend Open Studio (инструмент ETL для генерации кода с открытым исходным кодом) я получаю ошибки при синтаксическом анализе входящих строк даты, таких как «14.03.1967 0:00:00» (обратите внимание на однозначный месяц< /эм>).

Копаясь в код, я вижу, что он использует java.text.SimpleDateFormat. Таким образом, строка шаблона даты, которую, как я ожидаю, мне нужно будет использовать, будет "d-M-yyyy H:mm:ss"... но она продолжает выдавать мне такие ошибки, как "Unparseable date: 14.03.1967 0: 00:00".

Я предполагаю, что SimpleDateFormat может решить проблему с одной или двумя цифрами. Нужен ли мне другой шаблон даты? (Конечно, я мог бы выполнить предварительную обработку, чтобы настроить значения до того, как Java попытается прочитать строки как даты, но в этом нет необходимости!)


person ewall    schedule 14.10.2010    source источник


Ответы (1)


Вы уверены, что вам на самом деле нужно использовать d-M-yyyy, а не M/d/yyyy? Я понимаю, почему у него могут быть проблемы с «14.03.1967»… какую дату вы ожидаете? Обратите внимание, что вы не только перепутали "d" и "M", но и указали "-" вместо "/" в качестве разделителя.

person Jon Skeet    schedule 14.10.2010
comment
Гоша, это стыдно! Я должен просто сдаться сейчас, прежде чем я сделаю что-то еще более бездумное. Вы совершенно правы: я поменял местами значения месяца и дня и вместо косой черты поставил тире. Шиш. - person ewall; 14.10.2010