Класс 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 является неопределенным, и остальные записи в файле обрабатываются.
Если встречаются несколько записей свойств с одинаковым кодом валюты, но разными числовыми кодами и/или наименьшими единицами, эти записи игнорируются, и остальные записи в файле обрабатываются.
Рекомендуется использовать класс 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() |
Возвращает 3-значный числовой код 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 extensions, экземпляр, возвращаемый этим методом, отражает значения, указанные с помощью этих расширений. Если указаны оба расширения "cu" и "rg", валюта из расширения "cu" имеет приоритет над неявной валютой из расширения "rg".
Для территорий, не имеющих валюты, таких как Антарктида, метод возвращает null.
- Параметры:
-
locale- локали, для которой требуется экземплярCurrency - Возвращает:
- экземпляр
Currencyдля страны заданного локали илиnull - Исключения:
-
NullPointerException- еслиlocaleявляетсяnull -
IllegalArgumentException- если страна заданногоlocaleне является поддерживаемым кодом страны ISO 3166.
getAvailableCurrencies
public static Set<Currency> getAvailableCurrencies()
- Возвращает:
- набор доступных валют. Если во время выполнения нет доступных валют, возвращаемый набор пустой.
- Since:
- 1.7
getCurrencyCode
public String getCurrencyCode()
- Возвращает:
- код валюты ISO 4217 этой валюты.
getSymbol
public String getSymbol()
DISPLAY. Например, для американского доллара символом является "$", если локали по умолчанию является США, в то время как для других локали может быть "US$". Если символ определить нельзя, возвращается код валюты ISO 4217. Если локали по умолчанию DISPLAY содержит "rg" (региональный переопределения) Unicode extensions, символ, возвращаемый этим методом, отражает значение, указанное с этим расширением.
Это эквивалентно вызову getSymbol(Locale.getDefault(Locale.Category.DISPLAY)).
- Возвращает:
- символ этой валюты для локали по умолчанию
DISPLAY
getSymbol
public String getSymbol(Locale locale)
Если указанная locale содержит "rg" (региональное переопределение) Unicode extensions, символ, возвращаемый этим методом, отражает значение, указанное с этим расширением.
- Параметры:
-
locale- локали, для которой нужен символ этой валюты - Возвращает:
- символ этой валюты для указанного локали
- Исключения:
-
NullPointerException- еслиlocaleравно null
getDefaultFractionDigits
public int getDefaultFractionDigits()
- Возвращает:
- число знаков после запятой по умолчанию для данной валюты
getNumericCode
public int getNumericCode()
- Возвращает:
- числовой код ISO 4217 данной валюты
- Since:
- 1.7
getNumericCodeAsString
public String getNumericCodeAsString()
String. В отличие от getNumericCode(), которая возвращает числовой код в виде int, этот метод всегда возвращает числовой код в виде строки из 3 цифр. Например, числовое значение 32 будет возвращено как "032", а числовое значение 6 будет возвращено как "006".- Возвращает:
- 3-значный числовой код ISO 4217 данной валюты в виде
String - Since:
- 9
getDisplayName
public String getDisplayName()
DISPLAY. Если подходящее имя для отображения не найдено для локали по умолчанию, возвращается код валюты ISO 4217. Это эквивалентно вызову getDisplayName(Locale.getDefault(Locale.Category.DISPLAY)).
- Возвращает:
- имя для отображения данной валюты для локали по умолчанию
DISPLAY - Since:
- 1.7
getDisplayName
public String getDisplayName(Locale locale)
- Параметры:
-
locale- локали, для которой нужно имя для отображения валюты - Возвращает:
- имя для отображения этой валюты для указанного локали
- Исключения:
-
NullPointerException- еслиlocaleравно null - Since:
- 1.7
toString
public String toString()
- Overrides:
-
toStringв классеObject - Возвращает:
- код валюты ISO 4217 этой валюты
© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Currency.html