2015-01-10 7 views
1

У меня есть строка даты:Строка Дата преобразования дает неверную дату

"01/15/2015 12:00 AM" 

и я хочу, объект даты в формате "dd/MM/yyyy' 'HH:mm:ss". Как я могу это достичь?

Я попытался:

String datetime1 ="01/15/2015 12:00 AM" 
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm a"); 
Date datepicker1 = dateFormat.parse(datetime1); 

Но это datepicker имеет дату в 2016 году, я не знаю, почему это происходит.

ответ

6

Изменить это:

DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm a"); 
               ↑ 

Вы переворачивается MM и dd ..

Я думаю, что то, что произошло здесь в том, что Java думал, у вас есть 15 месяцев, добавили его в день «1» в в 2015 году, так что вы получили 2016 год. Вы не далеко от внедрения машины времени :)

+2

Разве это не приятно, как java выбрала * одно место в мире, чтобы прощать ошибки в форматировании? :) Я имею в виду, что он не может разобрать «0» в целое число, но с удовольствием сочетается с 15-м месяцем: D – Dima

+0

Thanx Maroun. Это была очень глупая ошибка с моей стороны. –

+1

@ Дизайнеры Dima Java подумали о программистах, которые живут в других галактиках, которые имеют другое определение времени. – Maroun

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