Не только у вас есть косая черта/черточки неправильно, вы также используете DD
(день года) вместо dd
(день месяца). Вы хотите:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Как всегда, читайте the documentation, чтобы точно выяснить, что означают символы шаблон - и если вы обнаружите, что это странно ведет себя, проверить шаблон с данными очень тщательно.
Я также рекомендуем:
- Использование Joda Time (до Java-8) или
java.time
(Java 8), если это возможно; java.util.Date/Calendar
API ужасен
- Указание локаль явно
- Указание часового пояса явно
В настоящее время вы используете часовой пояс и локаль по умолчанию. Хотя в этом случае языковой стандарт может не иметь значения (если он не используется для выбора системы календаря, я не могу вспомнить заранее). Я думаю, что яснее явно указать его. Часовой пояс обязательно вопросы; если вы только когда-либо захотите рассматривать это как дату (нет времени), вероятно, стоит указать UTC - таким образом, легко взаимодействовать с чем-либо еще, и вы получаете дневные границы в очевидных местах в базовом миллисекундном представлении.
ваш шаблон даты отличается, а также заменить 'DD' на' dd'. [Check] (http://ideone.com/0jSVqp) – silentprogrammer
инициализировать ваш форматирующий, как новый SimpleDateFormat ("yyyy/MM/dd") –