Как получить локаль NumberFormat в Java / Kotlin? - PullRequest
0 голосов
/ 01 апреля 2019

Согласно https://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html, NumberFormat.getInstance() вы получите экземпляр NumberFormat в текущей локали. После создания экземпляра я хотел бы проверить, в какой локали используется метод, подобный getLocale(), но, похоже, такой метод там не документирован.

Лучшее, что я мог сделать, чтобы убедиться в этом, это вызвать Locale.getDefault() в оболочке Kotlin (kotlinc):

>>> import java.math.BigDecimal
>>> import java.text.NumberFormat
>>> NumberFormat.getInstance().format(BigDecimal(1500))
1,500
>>> import java.util.Locale
>>> Locale.getDefault()
en_US

Нет ли NumberFormat.getLocale() метода?

1 Ответ

1 голос
/ 01 апреля 2019

Нет ли NumberFormat.getLocale() метода?

Нет - то, что вы можете сделать, хотя это вызвать тот же метод, который NumberFormat.getInstance() делает под капотом:

Locale defaultLocale = Locale.getDefault(Locale.Category.FORMAT);

В Java 8 есть два Category: https://docs.oracle.com/javase/8/docs/api/java/util/Locale.Category.html. Если вам нужен DISPLAY, просто поменяйте местами аргумент.

...