Исключение синтаксиса формата даты – «EEE MMM dd HH: mm: ss Z yyyy»

У меня проблема с датой даты синтаксического анализа:

SimpleDateFormat parserSDF=new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.getDefault()); parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013"); 

исключение

Exacly Я хочу разобрать эту дату формата на yyyy-MM-dd. Я пытаюсь:

 SimpleDateFormat parserSDF = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013"); 

take: java.text.ParseException: Непревзойденная дата: «Ср 16 октября 00:00:00 CEST 2013»


ОК, я перехожу к и работает:

 SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH); Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013"); 

3 Solutions collect form web for “Исключение синтаксиса формата даты – «EEE MMM dd HH: mm: ss Z yyyy»”

Я собираюсь предположить, что Locale.getDefault() для вас – pl-PL так как вы, кажется, Locale.getDefault() в Польше.

Поэтому английские слова в строках даты вызывают неподдельную дату.

Соответствующая польская дата String будет чем-то вроде

 "Wt paź 16 00:00:00 -0500 2013" 

В противном случае измените свой Locale на Locale.ENGLISH чтобы объект SimpleDateFormat мог анализировать даты String с английскими словами.

Вместо того, чтобы использовать Locale.default что вы и другие часто не знаете, какой по умолчанию, вы можете решить, используя locale.ENGLISH потому что я вижу, что ваша строковая дата имеет формат на английском языке. Если вы находитесь в других странах, формат будет другим.

Вот мой пример кода:

 public static void main(String[] args) { try { SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH); Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013"); System.out.println("date: " + date.toString()); } catch (ParseException ex) { ex.printStackTrace(); } } 

Результатом будет: date: Wed Oct 16 05:00:00 ICT 2013 . Или вы можете решить, какую часть этой даты распечатать, используя свои поля.

Надеюсь эта помощь 🙂

Я думаю, что исходное исключение связано с Z в вашем формате. По документации :

 Z Time zone RFC 822 time zone -0800 

скорее всего, вы хотели использовать нижний регистр z

  • Каковы форматы дат в classе SimpleDateFormat?
  • Получить вчерашнюю дату, используя Date
  • Сравнение времени неверно при выборе 12:00
  • Как анализировать даты в нескольких форматах с помощью SimpleDateFormat
  • Анализ порядкового индикатора даты (st, nd, rd, th) в строке даты
  • Java Convert GMT / UTC к локальному времени не работает должным образом
  • SimpleDateFormat.parse () игнорирует количество символов в шаблоне
  • Анализ формата даты ISO 8601 типа 2015-06-27T13: 16: 37.363Z в Java
  • SimpleDateFormat игнорирует месяц при parsingе
  • Java - уникальная дата
  • Как конвертировать дату в формат yyyy-MM-dd?
  • Interesting Posts

    Внедрить EJB в JAX-RS (служба RESTful)

    Операция может дестабилизировать время выполнения?

    Android SDK Manager не устанавливает компоненты

    Библиотеки SFTP для .NET

    Дефекты предикатов в C #

    Unity Создать интерфейс пользовательского интерфейса из сценария

    Отменено вырезать и вставить, что происходит?

    Как читать файлы PDF с помощью Java?

    Как связать SID старого пользователя с новым пользователем, чтобы оставаться владельцем файла NTFS и разрешениями после новой переустановки Windows?

    Псевдонимы T * с char * разрешены. Разрешено ли это другим способом?

    В чем разница между абстрактным деревом синтаксиса и деревом синтаксиса бетона?

    Почему Java-коллекции не могут напрямую хранить типы примитивов?

    Получение IP-адреса DHCP, если статический адрес недоступен

    Производительность пакетной вставки JDBC

    Как получить информацию о принтере в .NET?

    Давайте будем гением компьютера.