2016-04-07 2 views
-2

Код, который у меня есть, должен преобразовать дату ввода даты в формат DD/MM/YYYY, который он делает, но, например, когда я ввожу 20/08/2000, он видит дату как 3 января ,Явная дата форматирования Java

System.out.println(this.dob); 
DateFormat dateF = new SimpleDateFormat("dd/MM/YYYY"); 
Date birth = dateF.parse(this.dob); 
System.out.println(birth); 

Какие выходы

20/08/2000 
Mon Jan 03 00:00:00 GMT 2000 
+0

Почему люди не могут узнать разницу между 'yyyy' и' YYYY'? Или почему они даже не потрудились перепроверять, правильно ли их шаблон? Раздражает. – Tom

ответ

4

Использование капитала Y с в вашем формате означает что-то под названием "Неделя год".

Вместо этого используйте нижний регистр y s в вашем формате, что означает год, как вы ожидали.

new SimpleDateFormat("dd/MM/yyyy"); 
+0

Когда в августе год и год недели одинаковы. Год недели - это год, на который принадлежит неделя; только в течение Нового года он может отклоняться от года (например, если неделя 52 предыдущего года продолжается до января). –

+2

@ OleV.V. Это может быть правдой, но изменение на 'yyyy' корректирует вывод на соответствующую дату. – rgettman

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