Строка Java для преобразования даты - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь преобразовать строку в дату

Я пытался несколькими способами, но получаю то же самое. Пожалуйста, кто-нибудь может мне помочь.

String stringDate ="20181228184821";
Date date = null;
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
try {
    date = sdf1.parse(stringDate);
    System.out.println(date);
} catch (ParseException e) {
    System.out.println("ICICIBusinessLogic Error in converting input date string ****" + e);
}

Iполучить следующее исключение:

Ошибка при преобразовании строки входной даты **** java.text.ParseException: Неразборчивая дата: "20181228184821"

Ответы [ 4 ]

0 голосов
/ 31 декабря 2018

Шаблон, указанный в конструкторе простого формата даты, должен совпадать со строкой, которую нужно проанализировать.

Попробуйте String stringDate ="20181228 18:48:21";

0 голосов
/ 31 декабря 2018

Ваше stringDate должно точно соответствовать вашему формату.

20181228184821 => 20181228 18:48:21 должно работать.

Или измените свой формат на yyyyMMddHHmmss

0 голосов
/ 31 декабря 2018

Вы должны использовать DateTimeFormatter и новые классы в java.time вместо старых SimpleDateFormat API.При этом, похоже, вы перепутали свои входные и выходные форматы.

String fmtIn = "yyyyMMddHHmmss", fmtOut = "yyyyMMdd HH:mm:ss";
String stringDate = "20181228184821";
TemporalAccessor dt = DateTimeFormatter.ofPattern(fmtIn).parse(stringDate);
System.out.println(LocalDateTime.from(dt));
System.out.println(DateTimeFormatter.ofPattern(fmtOut).format(dt));
0 голосов
/ 31 декабря 2018

Вы используете неправильный шаблон , используйте вместо него следующее:

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMddHHmmss");

Также, SimpleDateFormat давно устарел, используйте java из java-8.время

LocalDateTime.parse(stringDate, DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...