Как локализовать числа с помощью DateTimeFormatter?JAVA

Программисты JAVA общаются здесь
Anonymous
Как локализовать числа с помощью DateTimeFormatter?

Сообщение Anonymous »

Класс java.time.format.DateTimeFormatter работает неправильно для языков, в которых для представления чисел используются разные символы.
В таких языках, как персидский (также называемый фарси), для представления чисел используются разные символы и символы Юникода:

Персидские цифры: ۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹

Западные цифры: 0 1 2 3 4 5 6 7 8 9
Например:

Код: Выделить всё

Locale myLocale = Locale.forLanguageTag("fa");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy", myLocale);
formatter.format(LocalDate.now()); // should return "۲۰۲۰" but returns "2020"
Я должен сказать, что класс DateFormat, который используется для форматирования устаревших дат Java, работает должным образом.
Связано: В чем разница между withLocale() и localizedBy() в Java DateTimeFormatter?

Подробнее здесь: https://stackoverflow.com/questions/624 ... eformatter

Вернуться в «JAVA»