Java - SimpleDateFormat - ParseException - Шаблон, кажется, совпадает

1

Я написал класс, который пытается преобразовать объекты в даты.

Для строковых представлений он пытается определить формат даты, ища совпадение шаблона формата предопределенной даты с этой строкой. Если шаблон совпадает, он использует этот шаблон в SimpleDateFormat для синтаксического анализа этой строки на сегодняшний день.

Я знаю, что этот подход не является детерминированным, поскольку он потерпит неудачу, например, 8/6/1928, где будут совпадать несколько шаблонов, таких как d/M/yyyy и M/d/yyyy.

Ниже следует соответствующий раздел кода, который генерирует исключение ParseException:

// dateFormat is "d MMMM yyyy"

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
simpleDateFormat.setLenient(false);


// objectToConvert is "8 June 1982"
return simpleDateFormat.parse((String)objectToConvert);

Я не понимаю, почему я получаю следующее ParseException:

java.text.ParseException: Unparseable date: "8 June 1982"

С наилучшими пожеланиями, Йенс

  • 0
    Интересно, что это работает для меня в Java 6.
  • 0
    Уважаемый Александр, вы правы. Я изменил вопрос соответственно.
Теги:

1 ответ

0
Лучший ответ

Скорее всего, вы находитесь в другом Locale, где в июне месяце пишется по- разному (для меня, в моей местности, это Juni).

Попробуй это:

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("d MMM yyyy", Locale.ENGLISH);
  • 0
    Большое спасибо за подсказку. Сервер, на котором выполняется мой код, находится в другой Locale Я изменил параметры моего анализатора дат, чтобы вызывающий мог дополнительно передать Locale .
  • 0
    NP, пожалуйста.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню