Класс 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 или денежными значениями, так как он обеспечивает лучшую обработку чисел с плавающей запятой и их операций.
- Since:
- 1.4
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static Set<Currency> |
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 этой валюты (3 цифры) как 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".- Возвращает:
- 3-значный числовой код валюты ISO 4217 для этой валюты как
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
public String toString()
- Переопределяет:
-
toStringв классеObject - Возвращает:
- код валюты ISO 4217 этой валюты
© 1993, 2021, 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/17/docs/api/java.base/java/util/Currency.html