Класс Currency
- Все реализованные интерфейсы:
Serializable
public final class Currency extends Object implements Serializable
Класс разработан таким образом, что для любой данной валюты существует не более одного Currency экземпляра. Поэтому нет публичного конструктора. Вы получаете экземпляр Currency, используя методы getInstance.
Пользователи могут заменить данные о валюте Java runtime с помощью системной переменной java.util.currency.data. Если эта системная переменная определена, её значение — это путь к файлу свойств, содержимое которого представляет собой пары «ключ-значение» кодов стран ISO 3166 и данных валют ISO 4217 соответственно. Часть значения состоит из трёх значений ISO 4217 валюты: буквенный код, числовой код и единицы меньшего разряда. Эти три значения ISO 4217 разделяются запятыми. Строки, начинающиеся с '#', считаются комментариями. Необязательное временное метка UTC может быть указана для каждой записи о валюте, если пользователю необходимо указать дату перехода, указывая, когда новые данные вступают в силу. Временная метка добавляется в конец свойств валюты и использует запятую в качестве разделителя. Если временная метка UTC присутствует и является допустимой, JRE будет использовать новые свойства валюты только в том случае, если текущая дата UTC позднее даты, указанной при загрузке класса. Формат временной метки должен соответствовать формату ISO 8601: 'yyyy-MM-dd'T'HH:mm:ss'. Например,
#Sample currency properties
JP=JPZ,999,0
заменит данные о валюте Японии. Если JPZ — это один из существующих кодов валюты ISO 4217, используемый другими странами, существующие данные о валюте JPZ обновляются с использованием указанного числового кода и значений единиц меньшего разряда.
#Sample currency properties with cutover date
JP=JPZ,999,0,2014-01-01T00:00:00
заменит данные о валюте Японии, если класс Currency загружен после 1 января 2014 года 00:00:00 по Гринвичу.
В случае обнаружения синтаксически неправильных записей, запись игнорируется, и обрабатываются оставшиеся записи в файле. В тех случаях, когда существуют дублирующиеся записи кода страны, поведение информации о валюте для этой Currency не определено, и обрабатываются оставшиеся записи в файле.
Если встречаются несколько записей свойств с одинаковым кодом валюты, но различными числовыми кодами и/или единицами меньшего разряда, эти записи игнорируются, и обрабатываются оставшиеся записи в файле.
- Примечание API:
- Рекомендуется использовать класс
BigDecimalпри работе сCurrencyили денежными значениями, так как он обеспечивает более эффективное управление числами с плавающей запятой и их операциями. - С:
- 1.4
- Внешние спецификации
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static Set |
getAvailableCurrencies() |
Получает набор доступных валют. |
String |
getCurrencyCode() |
Получает код валюты ISO 4217 данной валюты. |
int |
getDefaultFractionDigits() |
Получает стандартное количество знаков после запятой, используемых с данной валютой. |
String |
getDisplayName() |
Получает имя, подходящее для отображения данной валюты для локали по умолчанию DISPLAY. |
String |
getDisplayName |
Получает имя, подходящее для отображения данной валюты для указанной локали. |
static Currency |
getInstance |
Возвращает экземпляр Currency для данного кода валюты. |
static Currency |
getInstance |
Возвращает экземпляр Currency для страны указанной локали. |
int |
getNumericCode() |
Возвращает числовой код ISO 4217 данной валюты. |
String |
getNumericCodeAsString() |
Возвращает числовой код ISO 4217 данной валюты в виде String. |
String |
getSymbol() |
Получает символ данной валюты для локали по умолчанию DISPLAY. |
String |
getSymbol |
Получает символ данной валюты для указанной локали. |
String |
toString() |
Возвращает код валюты ISO 4217 данной валюты. |
Подробное описание методов
getInstance
public static Currency getInstance(String currencyCode)
Currency для заданного кода валюты.- Параметры:
-
currencyCode- код валюты по стандарту ISO 4217 - Возвращает:
- экземпляр
Currencyдля заданного кода валюты - Исключения:
-
NullPointerException- еслиcurrencyCodeравно null -
IllegalArgumentException- еслиcurrencyCodeне является поддерживаемым кодом ISO 4217.
getInstance
public static Currency getInstance(Locale locale)
Currency для страны заданного региона. Компоненты языка и варианта региона игнорируются. Результат может меняться со временем, так как страны меняют свои валюты. Например, для первоначальных стран Европейского валютного союза метод возвращает старые национальные валюты до 31 декабря 2001 года и евро с 1 января 2002 года, по местному времени соответствующих стран. Если указанный locale содержит расширения «cu» и/или «rg» Unicode расширения, возвращаемый экземпляр отражает значения, заданные с помощью этих расширений. Если указаны оба расширения «cu» и «rg», валюта из расширения «cu» имеет приоритет над неявной валютой из расширения «rg».
Метод возвращает null для территорий, у которых нет валюты, например, Антарктиды.
- Параметры:
-
locale- регион, для страны которого нужен экземплярCurrency - Возвращает:
- экземпляр
Currencyдля страны заданного региона илиnull - Исключения:
-
NullPointerException- еслиlocaleявляетсяnull -
IllegalArgumentException- если страна заданногоlocaleне является поддерживаемым кодом ISO 3166.
getAvailableCurrencies
public static Set<Currency> getAvailableCurrencies()
- Возвращает:
- набор доступных валют. Если в процессе выполнения нет доступных валют, возвращаемый набор пуст.
- С:
- 1.7
getCurrencyCode
public String getCurrencyCode()
- Возвращает:
- код валюты ISO 4217 этой валюты.
getSymbol
public String getSymbol()
DISPLAY. Например, для доллара США символ — «$», если локаль по умолчанию — США, а для других локалей — «US$». Если символ определить невозможно, возвращается код валюты ISO 4217. Если локаль по умолчанию DISPLAY содержит расширение «rg» (региональный приоритет) Unicode расширения, возвращаемый символ отражает значение, заданное с помощью этого расширения.
- Требования к реализации:
- Это эквивалентно вызову
getSymbol(Locale.getDefault(Locale.Category.DISPLAY)). - Возвращает:
- символ этой валюты для локали по умолчанию
DISPLAY
getSymbol
public String getSymbol(Locale locale)
Если указанная locale содержит расширение «rg» (региональный приоритет) Unicode расширения, возвращаемый символ отражает значение, заданное с помощью этого расширения.
- Параметры:
-
locale- локаль, для которой нужен отображаемый текст для этой валюты - Возвращает:
- символ этой валюты для указанной локали
- Исключения:
-
NullPointerException- еслиlocaleравно null
getDefaultFractionDigits
public int getDefaultFractionDigits()
- Возвращает:
- стандартное количество знаков после запятой, используемых с этой валютой
getNumericCode
public int getNumericCode()
- Возвращает:
- числовой код этой валюты по ISO 4217
- С:
- 1.7
getNumericCodeAsString
public String getNumericCodeAsString()
String. В отличие от getNumericCode(), который возвращает числовой код в виде int, этот метод всегда возвращает числовой код в виде строки из 3 цифр. Например, числовое значение 32 будет возвращено как "032", а числовое значение 6 — как "006".- Возвращает:
- числовой код этой валюты по ISO 4217 (3 цифры) в виде
String - С:
- 9
getDisplayName
public String getDisplayName()
DISPLAY. Если подходящего имени для отображения не найдено в локали по умолчанию, возвращается код валюты ISO 4217.- Требования к реализации:
- Это эквивалентно вызову
getDisplayName(Locale.getDefault(Locale.Category.DISPLAY)). - Возвращает:
- отображаемое имя этой валюты для локали по умолчанию
DISPLAY - С:
- 1.7
getDisplayName
public String getDisplayName(Locale locale)
- Параметры:
-
locale- локаль, для которой нужно имя для отображения валюты - Возвращает:
- отображаемое имя этой валюты для указанной локали
- Исключения:
-
NullPointerException- еслиlocaleравно null - С:
- 1.7
toString
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/Currency.html