- java.lang.Object
-
- java.util.Currency
-
- すべての実装されたインタフェース:
Serializable
public final class Currency extends Object implements Serializable
通貨を表します。 通貨は、ISO 4217通貨コードで識別されます。 詳細は、ISOのWebサイトを参照してください。クラスは、指定された通貨の
Currency
インスタンスが複数存在しないように設計されています。 したがって、クラスにはpublicコンストラクタがありません。getInstance
メソッドを使用して、Currency
インスタンスを取得します。ユーザーは
java.util.currency.data
システム・プロパティを使って、Javaランタイム通貨データを置き換えることができます。 このシステム・プロパティが定義されている場合、その値はプロパティ・ファイルの場所であり、そのファイル内容はISO 3166国コードとISO 4217通貨データからなるキーと値のペアです。 値の部分はISO 4217の3つの通貨の値、つまり、英字コード、数値コード、マイナー単位で構成されます。 これら3つの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通貨コードの1つである場合、既存のJPZ通貨データは指定された数値コードとマイナー・ユニット値で更新されます。
#Sample currency properties with cutover date
JP=JPZ,999,0,2014-01-01T00:00:00Currency
クラスが2014年1月1日00:00:00 GMTより後にロードされる場合は、日本の通貨データがこれに置き換わります。構文的に不正な形式のエントリが検出された場合、そのエントリは無視され、ファイル内の残りのエントリは処理されます。 たとえば、国コード・エントリが重複して存在する場合、その
Currency
の通貨情報の動作は未定義であり、ファイル内の残りのエントリが処理されます。通貨コードが同じでも数値コードまたはマイナー単位が異なる複数のプロパティ・エントリが検出された場合、それらのエントリは無視され、ファイルの残りのエントリが処理されます。
Currency
や金銭的な値を扱うときは、浮動小数点数とその操作をよりうまく処理できるので、BigDecimal
クラスを使用することをお勧めします。- 導入されたバージョン:
- 1.4
- 関連項目:
BigDecimal
、直列化された形式
-
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 static Set<Currency>
getAvailableCurrencies()
利用可能な通貨のセットを取得します。String
getCurrencyCode()
この通貨のISO 4217通貨コードを取得します。int
getDefaultFractionDigits()
この通貨で使用される小数のデフォルトの桁数を取得します。String
getDisplayName()
デフォルトのDISPLAY
ロケールでこの通貨を表示するのに適した名前を取得します。String
getDisplayName(Locale locale)
指定されたロケールでこの通貨を表示するのに適した名前を取得します。static Currency
getInstance(String currencyCode)
指定された通貨コードのCurrency
インスタンスを返します。static Currency
getInstance(Locale locale)
指定されたロケールの国のCurrency
インスタンスを返します。int
getNumericCode()
この通貨のISO 4217数値コードを返します。String
getNumericCodeAsString()
この通貨の3桁のISO 4217数値コードをString
として返します。String
getSymbol()
デフォルトのDISPLAY
ロケールについて、その通貨の記号を取得します。String
getSymbol(Locale locale)
指定されたロケールでのこの通貨の記号を取得します。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
インスタンスを返します。 ロケールの言語コンポーネントおよびバリアント・コンポーネントは無視されます。 国によって通貨が変更されるので、時の経過とともに結果が変わる場合があります。 たとえば、欧州通貨統合のオリジナル・メンバーの国々の場合、2001年12月31日までは各国の従来の通貨、そして各国の現地時間の2002年1月1日からはメソッドはEuroを返します。指定された
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()
利用可能な通貨のセットを取得します。 返される通貨のセットには、利用可能なすべての通貨が含まれ、廃止されたISO 4217コードに相当する通貨が含まれることもあります。 このセットは、実行時に利用可能な通貨に影響を及ぼさないように変更できます。- 戻り値:
- 利用可能な通貨のセット。 実行時に利用可能な通貨が存在しない場合、空のセットが返されます。
- 導入されたバージョン:
- 1.7
-
getCurrencyCode
public String getCurrencyCode()
この通貨のISO 4217通貨コードを取得します。- 戻り値:
- この通貨のISO 4217通貨コード。
-
getSymbol
public String getSymbol()
デフォルトのDISPLAY
ロケールについて、その通貨の記号を取得します。 たとえば、USドルについては、デフォルトのロケールがUSの場合は、記号は「$」になります。ほかのロケールの場合は、記号は「US$」になります。 記号を判断できない場合は、ISO 4217通貨コードを返します。デフォルトの
DISPLAY
ロケールに"rg" (リージョン・オーバーライド) 「Unicode拡張」が含まれている場合、このメソッドから返されたシンボルはその拡張で指定された値を反映します。これは、
getSymbol(Locale.getDefault(Locale.Category.DISPLAY))
を呼び出すことと同等です。- 戻り値:
- デフォルトの
DISPLAY
ロケールでのこの通貨の記号
-
getSymbol
public String getSymbol(Locale locale)
指定されたロケールでのこの通貨の記号を取得します。 たとえば、USドルについては、指定されたロケールがUSの場合は、記号は「$」になります。ほかのロケールの場合は、記号は「US$」になります。 記号を判断できない場合は、ISO 4217通貨コードを返します。指定された
locale
に"rg" (リージョン・オーバーライド) 「Unicode拡張」が含まれている場合、このメソッドから返されるシンボルは、その拡張で指定された値を反映します。- パラメータ:
locale
- この通貨の表示名が必要なロケール- 戻り値:
- 指定されたロケールでのこの通貨の記号
- 例外:
NullPointerException
-locale
がnullである場合
-
getDefaultFractionDigits
public int getDefaultFractionDigits()
この通貨で使用される小数のデフォルトの桁数を取得します。 小数点の桁数は、通貨のISO 4217マイナー単位と同じです。 たとえば、ユーロの場合は小数のデフォルトの桁数は2で、日本円の場合は0です。 IMFの特別引出権のような、擬似通貨の場合は、-1を返します。- 戻り値:
- この通貨で使用される小数のデフォルトの桁数
-
getNumericCode
public int getNumericCode()
この通貨のISO 4217数値コードを返します。- 戻り値:
- その通貨のISO 4217数値コード
- 導入されたバージョン:
- 1.7
-
getNumericCodeAsString
public String getNumericCodeAsString()
この通貨の3桁のISO 4217数値コードをString
として返します。int
として数値コードを返すgetNumericCode()
とは異なり、このメソッドは常に数値コードを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)
指定されたロケールでこの通貨を表示するのに適した名前を取得します。 指定されたロケールで適した表示名が見つからない場合、ISO 4217通貨コードが返されます。- パラメータ:
locale
- この通貨の表示名が必要なロケール- 戻り値:
- 指定されたロケールでのこの通貨の表示名
- 例外:
NullPointerException
-locale
がnullである場合- 導入されたバージョン:
- 1.7
-
-