Код: Выделить всё
final var ARABIC_GREGORIAN_DATE_FORMATTER = DateTimeFormatter.ofPattern("EEEE dd\\MM\\yyyy G").localizedBy(Locale.forLanguageTag("ar"));
final var ENGLISH_GREGORIAN_DATE_FORMATTER = DateTimeFormatter.ofPattern("EEEE dd/MM/yyyy G").localizedBy(Locale.ENGLISH);
var now = Instant.now();
String arabicGregorianDate = ARABIC_GREGORIAN_DATE_FORMATTER.format(now.atZone(ZoneId.systemDefault()));
String englishGregorianDate = ENGLISH_GREGORIAN_DATE_FORMATTER.format(now.atZone(ZoneId.systemDefault()));
Log.info("arabicGregorianDate = " + arabicGregorianDate);
Log.info("englishGregorianDate = " + englishGregorianDate);
Код: Выделить всё
arabicGregorianDate = السبت 18\10\2025 م
englishGregorianDate = Saturday 18/10/2025 AD
Код: Выделить всё
arabicGregorianDate = Sat 18\10\2025 CE
englishGregorianDate = Saturday 18/10/2025 AD
Я предполагаю, что некоторые данные (CLDR?) отсутствуют в собственном изображении и для включения этих данных необходимы некоторые настройки. Как это сделать? Попробовал агент трассировки GraalVM, но это не решило проблему.
Я также использую -H:IncludeLocales=ar,en.
Воспроизводитель: https://github.com/Eng-Fouad/graal-native-date-locale
Изменить:
Я нашел необходимые ресурсы локализации внутри модуля jdk.localedata, в частности, в sun.text.resources.cldr.ext.FormatData_ar.
Однако я пытался добавить их в достижимость-metadata.json, но это не сработало.
Подробнее здесь: https://stackoverflow.com/questions/797 ... -time-data
Мобильная версия