Module  java.base
软件包  java.util

Class Currency

  • All Implemented Interfaces:
    Serializable


    public final class Currency
    extends Object
    implements Serializable
    代表货币。 货币由其ISO 4217货币代码确定。 请访问ISO web site了解更多信息。

    该课程的设计使得任何给定货币都不会有多个Currency实例。 因此,没有公共建设者。 您可以使用getInstance方法获取Currency实例。

    用户可以通过系统属性java.util.currency.data取代Java运行时货币数据。 如果定义了该系统属性,则其值是属性文件的位置,其内容分别是ISO 3166国家代码和ISO 4217货币数据的键/值对。 价值部分由货币的三个ISO 4217值组成,即字母代码,数字代码和次要单位。 这三个ISO 4217值用逗号分隔。 以'#'开头的行被视为注释行。 如果用户需要指定切换日期来指示新数据何时生效,则可以为每个货币条目指定可选的UTC时间戳。 时间戳附加到货币属性的末尾,并使用逗号作为分隔符。 如果UTC时间戳存在且有效,则如果当前UTC日期晚于类加载时指定的日期,JRE将仅使用新的货币属性。 时间戳的格式必须为ISO 8601格式: 'yyyy-MM-dd'T'HH:mm:ss' 例如,

    #Sample currency properties
    JP=JPZ,999,0

    将取代日本的货币数据。

    #Sample currency properties with cutover date
    JP=JPZ,999,0,2014-01-01T00:00:00

    如果在2014年1月1日以后载入Currency班, Currency GMT,将取代日本的货币数据。

    在遇到语法错误的条目时,将忽略该条目,并处理文件中其余的条目。 对于存在重复的国家/地区代码条目的情况,该Currency的货币信息的行为是未定义的,并且处理文件中的其余条目。

    建议使用BigDecimal课程,同时处理Currency或货币价值,因为它可以更好地处理浮点数及其操作。

    从以下版本开始:
    1.4
    另请参见:
    BigDecimalSerialized Form
    • 方法详细信息

      • getInstance

        public static Currency getInstance​(String currencyCode)
        返回给定货币代码的 Currency实例。
        参数
        currencyCode - 货币的ISO 4217代码
        结果
        给定货币代码的 Currency实例
        异常
        NullPointerException - 如果 currencyCode为空
        IllegalArgumentException - 如果 currencyCode不是支持的ISO 4217代码。
      • getInstance

        public static Currency getInstance​(Locale locale)
        返回给定语言环境的国家/地区的Currency实例。 语言环境的语言和变体组件将被忽略。 随着国家改变货币,结果可能会随时间而变化。 例如,对于欧洲货币联盟的原始成员国,该方法将2001年12月31日之前的旧货币和2002年1月1日的欧元兑换为各国当地时间。

        该方法对于没有货币的地区(如南极洲)返回null

        参数
        locale - 需要一个 Currency实例的国家/地区
        结果
        给定地区的国家的 Currency实例,或 null
        异常
        NullPointerException - 如果 localenull
        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 $”。 如果不能确定符号,则返回ISO 4217货币代码。

        这相当于调用getSymbol(Locale.getDefault(Locale.Category.DISPLAY))

        结果
        该货币的符号默认为 DISPLAY区域设置
      • getSymbol

        public String getSymbol​(Locale locale)
        获取指定区域设置的货币符号。 例如,对于美元,如果指定的区域设置为美国,则符号为“$”,而对于其他区域设置,则可能为“US $”。 如果不能确定符号,则返回ISO 4217货币代码。
        参数
        locale - 需要此货币显示名称的区域设置
        结果
        指定地区的货币符号
        异常
        NullPointerException - 如果 locale为空
      • getDefaultFractionDigits

        public int getDefaultFractionDigits​()
        获取与该货币一起使用的默认小数位数。 请注意,小数位数与货币的ISO 4217的次要单位相同。 例如,欧元的小数位数的默认数字是2,而对日元则是0。对于伪货币,如IMF特别提款权,返回-1。
        结果
        与该货币一起使用的默认分数数字
      • getNumericCode

        public int getNumericCode​()
        返回此货币的ISO 4217数字代码。
        结果
        该货币的ISO 4217数字代码
        从以下版本开始:
        1.7
      • getNumericCodeAsString

        public String getNumericCodeAsString​()
        String返回此货币的3位数字ISO 4217数字代码。 getNumericCode()不同,它将数字代码返回为int ,该方法总是返回数字代码作为3位数字。 例如,数值32将被返回为“032”,数值为6将返回为“006”。
        结果
        该货币的3位数字ISO 4217数字代码为 String
        从以下版本开始:
        9
      • getDisplayName

        public String getDisplayName​(Locale locale)
        获取适用于显示指定区域设置的货币的名称。 如果找不到指定区域设置的合适的显示名称,则返回ISO 4217货币代码。
        参数
        locale - 需要为此货币显示名称的区域设置
        结果
        指定区域设置的此货币的显示名称
        异常
        NullPointerException - 如果 locale为空
        从以下版本开始:
        1.7
      • toString

        public String toString​()
        返回此货币的ISO 4217货币代码。
        重写:
        toStringObject
        结果
        该货币的ISO 4217货币代码