public final class Currency extends Object implements Serializable
 The class is designed so that there's never more than one
 Currency instance for any given currency. Therefore, there's
 no public constructor. You obtain a Currency instance using
 the getInstance methods.
 
 Users can supersede the Java runtime currency data by means of the system
 property java.util.currency.data. If this system property is
 defined then its value is the location of a properties file, the contents of
 which are key/value pairs of the ISO 3166 country codes and the ISO 4217
 currency data respectively.  The value part consists of three ISO 4217 values
 of a currency, i.e., an alphabetic code, a numeric code, and a minor unit.
 Those three ISO 4217 values are separated by commas.
 The lines which start with '#'s are considered comment lines. An optional UTC
 timestamp may be specified per currency entry if users need to specify a
 cutover date indicating when the new data comes into effect. The timestamp is
 appended to the end of the currency properties and uses a comma as a separator.
 If a UTC datestamp is present and valid, the JRE will only use the new currency
 properties if the current UTC date is later than the date specified at class
 loading time. The format of the timestamp must be of ISO 8601 format :
 'yyyy-MM-dd'T'HH:mm:ss'. For example,
 
 
 #Sample currency properties
 
 JP=JPZ,999,0
 
will supersede the currency data for Japan.
 
 #Sample currency properties with cutover date
 
 JP=JPZ,999,0,2014-01-01T00:00:00
 
 will supersede the currency data for Japan if Currency class is loaded after
 1st January 2014 00:00:00 GMT.
 
 Where syntactically malformed entries are encountered, the entry is ignored
 and the remainder of entries in file are processed. For instances where duplicate
 country code entries exist, the behavior of the Currency information for that
 Currency is undefined and the remainder of entries in file are processed.
| Modifier and Type | Method and Description | 
|---|---|
| static Set<Currency> | getAvailableCurrencies()Gets the set of available currencies. | 
| String | getCurrencyCode()Gets the ISO 4217 currency code of this currency. | 
| int | getDefaultFractionDigits()Gets the default number of fraction digits used with this currency. | 
| String | getDisplayName()Gets the name that is suitable for displaying this currency for
 the default  DISPLAYlocale. | 
| String | getDisplayName(Locale locale)Gets the name that is suitable for displaying this currency for
 the specified locale. | 
| static Currency | getInstance(Locale locale)Returns the  Currencyinstance for the country of the
 given locale. | 
| static Currency | getInstance(String currencyCode)Returns the  Currencyinstance for the given currency code. | 
| int | getNumericCode()Returns the ISO 4217 numeric code of this currency. | 
| String | getSymbol()Gets the symbol of this currency for the default
  DISPLAYlocale. | 
| String | getSymbol(Locale locale)Gets the symbol of this currency for the specified locale. | 
| String | toString()Returns the ISO 4217 currency code of this currency. | 
public static Currency getInstance(String currencyCode)
Currency instance for the given currency code.currencyCode - the ISO 4217 code of the currencyCurrency instance for the given currency codeNullPointerException - if currencyCode is nullIllegalArgumentException - if currencyCode is not
 a supported ISO 4217 code.public static Currency getInstance(Locale locale)
Currency instance for the country of the
 given locale. The language and variant components of the locale
 are ignored. The result may vary over time, as countries change their
 currencies. For example, for the original member countries of the
 European Monetary Union, the method returns the old national currencies
 until December 31, 2001, and the Euro from January 1, 2002, local time
 of the respective countries.
 
 The method returns null for territories that don't
 have a currency, such as Antarctica.
locale - the locale for whose country a Currency
 instance is neededCurrency instance for the country of the given
 locale, or nullNullPointerException - if locale or its country
 code is nullIllegalArgumentException - if the country of the given locale
 is not a supported ISO 3166 country code.public static Set<Currency> getAvailableCurrencies()
public String getCurrencyCode()
public String getSymbol()
DISPLAY locale.
 For example, for the US Dollar, the symbol is "$" if the default
 locale is the US, while for other locales it may be "US$". If no
 symbol can be determined, the ISO 4217 currency code is returned.
 
 This is equivalent to calling
 getSymbol(Locale.getDefault(Locale.Category.DISPLAY)).
DISPLAY localepublic String getSymbol(Locale locale)
locale - the locale for which a display name for this currency is
 neededNullPointerException - if locale is nullpublic int getDefaultFractionDigits()
public int getNumericCode()
public String getDisplayName()
DISPLAY locale.
 If there is no suitable display name found
 for the default locale, the ISO 4217 currency code is returned.
 
 This is equivalent to calling
 getDisplayName(Locale.getDefault(Locale.Category.DISPLAY)).
DISPLAY localepublic String getDisplayName(Locale locale)
locale - the locale for which a display name for this currency is
 neededNullPointerException - if locale is null Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.