クラスCurrency

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:00

Currencyクラスが2014年1月1日00:00:00 GMTより後にロードされる場合は、日本の通貨データがこれに置き換わります。

構文的に不正な形式のエントリが検出された場合、そのエントリは無視され、ファイル内の残りのエントリは処理されます。 たとえば、国コード・エントリが重複して存在する場合、そのCurrencyの通貨情報の動作は未定義であり、ファイル内の残りのエントリが処理されます。

通貨コードが同じでも数値コードまたはマイナー単位が異なる複数のプロパティ・エントリが検出された場合、それらのエントリは無視され、ファイルの残りのエントリが処理されます。

APIのノート:
BigDecimalクラスは、浮動小数点数とその操作をより適切に処理するため、Currencyまたは金額値を処理する際に使用することをお薦めします。
導入されたバージョン:
1.4
外部仕様
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    使用可能な通貨のストリームを返します。
    static Set<Currency>
    使用可能な通貨のセットを返します。
    この通貨のISO 4217通貨コードを取得します。
    int
    この通貨で使用される小数のデフォルトの桁数を取得します。
    デフォルトのDISPLAYロケールでこの通貨を表示するのに適した名前を取得します。
    指定されたロケールでこの通貨を表示するのに適した名前を取得します。
    static Currency
    getInstance(String currencyCode)
    指定された通貨コードのCurrencyインスタンスを返します。
    static Currency
    指定されたロケールの国のCurrencyインスタンスを返します。
    int
    この通貨のISO 4217数値コードを返します。
    この通貨の3桁のISO 4217数値コードをStringとして返します。
    デフォルトのDISPLAYロケールについて、その通貨の記号を取得します。
    getSymbol(Locale locale)
    指定されたロケールについて、その通貨の記号を取得します。
    その通貨のISO 4217通貨コードを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • メソッドの詳細

    • 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 - localenullである場合
      IllegalArgumentException - 指定されたlocaleの国がサポートされたISO 3166国コードでない場合。
    • getAvailableCurrencies

      public static Set<Currency> getAvailableCurrencies()
      使用可能な通貨のセットを返します。 返された通貨セットには、使用可能なすべての通貨が含まれます。これには、廃止されたISO 4217コードを表す通貨が含まれる場合があります。 実行時に利用可能な通貨が存在しない場合、空のセットが返されます。 このセットは、実行時に利用可能な通貨に影響を及ぼさないように変更できます。
      APIのノート:
      使用可能な通貨のストリームを返すavailableCurrencies()の使用を検討してください。
      戻り値:
      使用可能な通貨のセット
      導入されたバージョン:
      1.7
      関連項目:
    • availableCurrencies

      public static Stream<Currency> availableCurrencies()
      使用可能な通貨のストリームを返します。 返された通貨ストリームには、使用可能なすべての通貨が含まれます。これには、廃止されたISO 4217コードを表す通貨が含まれる場合があります。 実行時に使用可能な通貨がない場合、返されるストリームは空です。
      実装上のノート:
      getAvailableCurrencies()とは異なり、このメソッドはCurrencyセットの防御コピーを作成しません。
      戻り値:
      使用可能な通貨のストリーム
      導入されたバージョン:
      25
      関連項目:
    • 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
    • toString

      public String toString()
      その通貨のISO 4217通貨コードを返します。
      オーバーライド:
      toString、クラスObject
      戻り値:
      その通貨のISO 4217通貨コード