Почему "2012-30-03" анализируется как 3 июня 2014 с DateFormat? - PullRequest
0 голосов
/ 29 марта 2012

У меня есть строка (например: 2012-30-03 12:30), и я пытаюсь использовать следующий код:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
this.startTime = (Date) df.parse(startTime); // startTime = "2012-30-03 12:30"

Но когда я пытаюсь сделать следующее:

System.out.println(this.startTime);

Будет напечатано следующее

Вт 03 июня 12:30:00 CEST 2014

Какого черта здесь не так?

Есть ли лучший способ превратить мою строку в объект рабочей даты?

1 Ответ

9 голосов
/ 29 марта 2012

Я думаю,

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");

должно быть

DateFormat df = new SimpleDateFormat("yyyy-dd-MM HH:mm");

в зависимости от предоставленной вами строки (2012-30-03 12:30).

Сконцентрируйте свою ярость на классе даты, чтобы проверить основы, и все будет в порядке.;)

...