LocalDate.parse(
"20180101",
DateTimeFormatter.BASIC_ISO_DATE
)
.toString()
2018-01-01
Подробности
Эта строка выглядит как дата.Я предлагаю вам разобрать его в LocalDate
.
Ваш формат входной строки uuuuMMdd
является «базовым» вариантом стандарта ISO 8601. Классы java.time предварительно определили объект для этого шаблона форматирования, DateTimeFormatter.BASIC_ISO_DATE
.
Этот класс генерирует String
по умолчанию в нужном формате, стандартном формате ISO 8601 .
LocalDate localDate = LocalDate.parse("20180101", DateTimeFormatter.BASIC_ISO_DATE);
String output = localDate.toString(); // the default format is the format you want.
2018-01-01
Вышеуказанное немного дорого по производительности, поэтому вот простой подход с StringBuilder
:
StringBuilder sb = new StringBuilder("20180101");
sb.insert(6, "-");
sb.insert(4, "-");
System.out.println(sb);