模块  java.base
软件包  java.util

Class Currency

  • 实现的所有接口
    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

    将取代日本的货币数据。 如果JPZ是其他国家/地区引用的现有ISO 4217货币代码之一,则使用给定的数字代码和次要单位值更新现有的JPZ货币数据。

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

    如果在格林威治标准时间2014年1月1日00:00:00之后加载Currency等级,则将取代日本的货币数据。

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

    如果遇到具有相同货币代码但具有不同数字代码和/或次要单位的多个属性条目,则忽略这些条目并处理文件中的其余条目。

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

    从以下版本开始:
    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日(各国的当地时间)返回。

        如果指定的locale包含“cu”和/或“rg” Unicode extensions ,则此方法返回的实例将反映使用这些扩展指定的值。 如果同时指定了“cu”和“rg”,则“cu”扩展名中的货币将取代“rg”扩展名中的隐含货币。

        对于没有货币的地区,该方法返回null ,例如Antarctica。

        参数
        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货币代码。

        如果默认DISPLAY语言环境包含“rg”(区域覆盖) Unicode extension ,则此方法返回的符号将反映使用该扩展名指定的值。

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

        结果
        默认 DISPLAY语言环境的此货币的符号
      • getSymbol

        public String getSymbol​(Locale locale)
        获取指定语言环境的此货币的符号。 例如,对于美元,如果指定的区域设置是美国,则符号为“$”,而对于其他区域设置,符号为“US $”。 如果无法确定符号,则返回ISO 4217货币代码。

        如果指定的locale包含“rg”(区域覆盖) Unicode extension ,则此方法返回的符号将反映使用该扩展名指定的值。

        参数
        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货币代码。
        重写:
        toString在类 Object
        结果
        此货币的ISO 4217货币代码