Преобразовать данную строку в объект даты - PullRequest
1 голос
/ 17 апреля 2019

У меня есть заданная строка 2019-04-17 10:00:43+02:00, и я хочу преобразовать ее во что-то вроде Mon Apr 15 12:05:47 CEST 2019

Я пытался:


String date = "2019-04-17T11:02:46+02:00"
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ssX ");
java.util.Date result = formatter.parse(date);

, но это дает исключение, как показано ниже,

Исключение в потоке "main" java.text.ParseException: дата без разбора: "2019-04-17 11: 02: 46 + 02: 00" в java.text.DateFormat.parse (НеизвестноИсточник)

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

проблема с вашим кодом в том, что вы добавили дополнительный пробел в форматере.

String date = "2019-04-17T11:02:46+02:00";
DateFormat format = new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ssX");
Date rst = format.parse(date);
System.out.println(rst);

вывод:

Thu Jan 17 14:32:46 IST 2019
0 голосов
/ 17 апреля 2019

Это формат ISO по умолчанию, который можно проанализировать как OffsetDateTime:

String date = "2019-04-17T11:02:46+02:00";
OffsetDateTime odt = OffsetDateTime.parse(date);

Если вам действительно нужен java.util.Date, вы можете использовать:

Date legacyDate = Date.from(odt.toInstant());
...