Синтаксический анализ текста.
DateTimeFormatter inputFormatter =
new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("dd-MMM-uuuu")
.toFormatter(Locale.ENGLISH)
;
DateTimeFormatter outputformatter =
DateTimeFormatter.ofPattern("MMMMdd,uuuu", Locale.ENGLISH)
;
String input = "31-AUG-2018";
LocalDate date = LocalDate.parse(input, inputFormatter);
Создание текста.
String output = date.format(outputformatter).toUpperCase(Locale.ENGLISH);
System.out.println("Converted to: " + output);
Этот фрагмент выводит:
Преобразовано в: AUGUST31,2018
Все заглушки на входе и выходе требуют особой обработки.Для ввода я использую DateTimeFormatterBuilder
и его parseCaseInsensitive
метод.Это дает средство форматирования, которое будет анализировать аббревиатуру месяца в верхнем или нижнем регистре или любое их сочетание.Для вывода я не нашел лучшего варианта, чем вызвать toUpperCase
для результата.