Теоретически это должно работать:
Locale bangla = Locale.forLanguageTag("bn-BD");
DateTimeFormatter timeFormatter = DateTimeFormatter
.ofLocalizedTime(FormatStyle.FULL)
.withLocale(bangla);
String formattedTime
= ZonedDateTime.now(ZoneId.of("Asia/Dhaka")).format(timeFormatter);
System.out.println(formattedTime);
Однако вывод на моем настольном компьютере Java 7:
02:29: 21 вечера БДТ
То есть я не вижу отличий от английского.
На Java 9 я получаю разницу:
10: 32: 00 101 বাংলাদেশ মানক সময়
Что вы получаете на Android Я не смею рассказать, но вы можете попробовать.
Вместо FormatStyle.FULL
вы можете указать .SHORT
, MEDIUM
или LONG
в зависимости от длины требуемого формата.
Я использую ThreeTen Backport, бэкпорт java.time, современного Java-API для даты и времени, для Java 6 и 7. Для более старых Android (в соответствии с уровнем API 26) используйте Android-адаптацию ThreeTenABP. Смотрите ссылки внизу.
Я использую языковой тег bn-BD
для бангла (бенгальский), как говорят в Бангладеш. Вы также можете попробовать bn
в одиночку, если вы не хотите указывать страну, или bn-IN
для бангла, как говорят в Индии. Это может или не может иметь значение.
Ссылки