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

Как я могу отформатировать LocalDate на основе стандарта местоположения пользователя. Я хочу, чтобы люди в США увидели "28.06.2008", а люди в Европе увидели "28.06.2008", а люди в Китае увидели "2018/6/28".

Нужно ли использовать DateTimeFormatter formatter = ... или мне нужно будет использовать что-то еще?

Мне также нужно будет преобразовать строку в LocalDate на основе стандартов местоположения пользователя.

1 ответ

Решение

Один из способов сделать это использовать DateTimeFormatter.ofLocalizedDate() фабричный метод, который возвращает специфичный для локали формат даты для хронологии ISO.

DateTimeFormatter fmt = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
LocalDate now = LocalDate.now(); // 2018-10-05
String txt = fmt.format(now); // Friday, 5 October 2018
LocalDate d = LocalDate.parse(txt, fmt); // 2018-10-05
Другие вопросы по тегам