Как использовать другой формат даты / времени для ввода и для удобочитаемого вывода текста в тимелист - PullRequest
0 голосов
/ 27 октября 2019

Я использую Spring Boot и Thymeleaf.

Для полей ввода даты в форме HTML, я должен использовать формат даты 2019-10-27. Для удобочитаемого текста я бы предпочел использовать тот, который подходит для локали, например, 27.10.2019 или 10/27 / 2019.

Spring Boot & Thymeleaf позволяет легко указать @DateTimeFormat иавтоматически поднять его в th:field и тому подобное. Здесь я указываю технический формат, в противном случае мои формы не отображаются и не отправляются правильно.

Есть ли способ заставить Thymeleaf или Spring использовать другой формат в других случаях? Я знаю, что могу сделать ${#temporals.format(period.end, #messages.msg('formats.readable.date.month'))}, но есть ли способ каким-то образом зарегистрировать эту вещь и сделать ее доступной для автоматических преобразований?

1 Ответ

0 голосов
/ 27 октября 2019

Вы также можете использовать WebDataBinder

@InitBinder
public void initBinder(WebDataBinder binder, final Locale locale) {
    String dateFormat = "MM/dd/yyyy";
    if(locale.getLanguage.equals("ar")){
        dateFormat = "dd-MM-yyyy";
    }
    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
    sdf.setLenient(false);
    binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf, true));
}
...