При необходимости преобразовать Java LocalDate
формата dd-MM-yyyy
в LocalDate
формата dd/MM/yyyy
.
Попытка с:
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date = // LocalDate value in dd-MM-yyyy format
String stringDate = dateFormat.format(date);
LocalDate convertedDate = LocalDate.parse(stringDate, dateFormat);
Но все же это приводит к возврату даты в формате dd-MM-yyyy
. Любой эффективный способ сделать это?
1 ответ
Реализация toString по умолчанию в LocalDate.java, похоже, жестко связана с "-" в качестве разделителя. Таким образом, все операторы печати по умолчанию будут иметь одинаковый формат. Кажется, единственным выходом было бы использовать средство форматирования и получить строковый вывод.
return buf.append(monthValue < 10 ? "-0" : "-")
.append(monthValue)
.append(dayValue < 10 ? "-0" : "-")
.append(dayValue)
.toString();
Кроме того, целью LocalDate.parse(..) является не преобразование формата даты. На самом деле это означает просто получить значение даты в String и предоставить результирующий экземпляр LocalDate.
Надеюсь это поможет.
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.
LocalDate
не имеет формата. Это просто объект даты. Когда вы печатаете объектLocalDate
, вызывается его методtoString()
, и он использует форматyyyy-MM-dd
по умолчанию (возможно, это зависит от локали).LocalDate
и желаемый формат вString
.