Проблема разбора Java SimpleDateFormat - PullRequest
1 голос
/ 30 июня 2011

Я пытаюсь разобрать строку даты, которую я получил с веб-сайта на Java, используя класс SimpleDateFormat, но что-то идет не так, и я не могу понять, почему.

Строки даты имеют следующий синтаксис:

"13:37 - Tue 28-Jun-2011"

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

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy");
ParsePosition pos = new ParsePosition(0);   
Date d = dateFormat.parse("13:37 - Tue 28-Jun-2011", pos);

Как я уже говорил, это не работает; когда я печатаю

System.out.println(pos.getErrorIndex());

выводит «8», что, как я полагаю, означает, что ошибка находится где-то рядом с EEE-частью. Я пробовал разные перестановки, но ничего не получалось. Что я делаю не так?

Спасибо

bompf

Ответы [ 3 ]

2 голосов
/ 30 июня 2011

у меня нормально работает ...

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy");
ParsePosition pos = new ParsePosition(0);   
Date d = dateFormat.parse("13:37 - Tue 28-Jun-2011", pos);

System.out.println(pos.getErrorIndex());
System.out.println(d);

Выход -

-1
Tue Jun 28 13:37:00 EDT 2011
2 голосов
/ 30 июня 2011

Если вы пытаетесь разобрать дату, это сработает.Я не знаю, что вы пытаетесь сделать с ParsePosition

   SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy");
   Date d = dateFormat.parse("13:37 - Tue 28-Jun-2011");
   System.out.println(d);
0 голосов
/ 09 января 2013

Я обнаружил проблему: я не знал, что нужно установить локаль для формата даты.

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy", Locale.ENGLISH);

Теперь это работает!

...