Класс java.time.format.DateTimeFormatter
неправильно работает для языков, в которых для представления чисел используются разные символы.
В таких языках, как персидский (также называемый фарси), для представления чисел используются разные символы и символы Unicode:
Персидские цифры: ۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹
Западные цифры: 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 legacy Date
s, работает должным образом.