Как вы можете заставить LocalDate возвращать дату в определенном формате?

Как вы можете заставить LocalDate возвращать дату в определенном формате?

Бывший . LocalDate ld = LocalDate.now();

Приведенный выше оператор вернет дату, например 2018-11-24, но я хочу, чтобы она возвращалась как 24-11-2018.

** Не говорите использовать средство форматирования, потому что средство форматирования не вернет дату, оно вернет строку, которая для меня бесполезна.


person Sam    schedule 24.11.2018    source источник
comment
formator.parse возвращает date/time, formator.format возвращает строку.   -  person xingbin    schedule 24.11.2018
comment
Возможный дубликат Localdate.format, формат не применяется   -  person Ole V.V.    schedule 26.11.2018
comment
Если вы сможете объяснить, почему вы думаете, что хотите этого, мы, скорее всего, найдем для вас рабочее решение. По сути, вам не нужна дата с форматом. Может ли это быть проблемой XY?   -  person Ole V.V.    schedule 26.11.2018


Ответы (1)


Ваш вопрос противоречив, например, вы хотите «24-11-2018», но также хотите «дату» вместо «строки» и упускаете из виду тот факт, что «24-11-2018» — это дата в строковой форме. Дата никогда не будет иметь только один принятый формат. Так что да, для представления даты в виде строки пользователи должны применять любой настраиваемый модуль форматирования.

Но я подозреваю, что вы хотите изменить поведение LocalDate-метода toString(), который выдает строку в формате ISO "2018-11-24". Ну, вы не можете, потому что класс LocalDate является окончательным, поэтому переопределение этого метода невозможно, и также нет хука конфигурации для изменения поведения, потому что это противоречило бы неизменяемости класса.

person Meno Hochschild    schedule 24.11.2018
comment
Очень хорошее объяснение, я просто хотел подтвердить это. Если бы так или иначе это могло быть возможно, это было бы лучше, но если это не так, мы должны найти другой путь. - person Sam; 30.11.2018