- 所有已实现的接口:
Serializable
该类的设计使得任何给定货币的 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
如果 Currency 类在格林威治标准时间 2014 年 1 月 1 日 00:00:00 之后加载,将取代日本的货币数据。
如果遇到语法格式错误的条目,则忽略该条目并处理文件中的其余条目。对于存在重复国家代码条目的实例,Currency 的货币信息的行为是未定义的,文件中的其余条目将被处理。
如果遇到具有相同货币代码但不同数字代码和/或次要单位的多个属性条目,则忽略这些条目并处理文件中的其余条目。
建议在处理 Currency 或货币值时使用 BigDecimal 类,因为它可以更好地处理浮点数及其运算。
- 自从:
- 1.4
- 参见:
-
方法总结
修饰符和类型方法描述获取一组可用货币。获取此货币的 ISO 4217 货币代码。int获取此货币使用的默认小数位数。获取适合在默认DISPLAY区域设置中显示此货币的名称。getDisplayName(Locale locale) 获取适合在指定区域显示此货币的名称。static CurrencygetInstance(String currencyCode) 返回给定货币代码的Currency实例。static CurrencygetInstance(Locale locale) 返回给定区域设置的国家/地区的Currency实例。int返回此货币的 ISO 4217 数字代码。返回此货币的 3 位 ISO 4217 数字代码作为String。获取默认DISPLAY区域设置的此货币符号。获取此货币在指定区域的符号。toString()返回此货币的 ISO 4217 货币代码。
-
方法详情
-
getInstance
返回给定货币代码的Currency实例。- 参数:
currencyCode- 货币的 ISO 4217 代码- 返回:
-
给定货币代码的
Currency实例 - 抛出:
NullPointerException- 如果currencyCode为空IllegalArgumentException- 如果currencyCode不是受支持的 ISO 4217 代码。
-
getInstance
返回给定区域设置的国家/地区的Currency实例。locale的语言和变体组件将被忽略。结果可能会随着时间的推移而变化,因为各国会更改其货币。例如,对于欧洲货币联盟的原始成员国,该方法返回到2001年12月31日之前的旧国家货币,以及从各自国家当地时间2002年1月1日开始的欧元。如果指定的
locale包含“cu”和/或“rg” Unicode 扩展 ,则从此方法返回的实例将反映使用这些扩展指定的值。如果同时指定了“cu”和“rg”,则“cu”扩展名中的货币将取代“rg”扩展名中的隐式货币。对于没有货币的地区,例如南极洲,该方法返回
null。- 参数:
locale- 其国家/地区需要Currency实例的locale- 返回:
-
给定区域设置的国家/地区的
Currency实例,或null - 抛出:
NullPointerException- 如果locale是nullIllegalArgumentException- 如果给定locale的国家不是受支持的 ISO 3166 国家代码。
-
getAvailableCurrencies
获取一组可用货币。返回的货币集包含所有可用货币,其中可能包括表示过时 ISO 4217 代码的货币。可以在不影响运行时可用货币的情况下修改该集合。- 返回:
- 一组可用货币。如果运行时没有可用的货币,则返回的集合为空。
- 自从:
- 1.7
-
getCurrencyCode
获取此货币的 ISO 4217 货币代码。- 返回:
- 此货币的 ISO 4217 货币代码。
-
getSymbol
获取默认DISPLAY区域设置的此货币符号。例如,对于美元,如果默认区域设置为美国,则符号为“$”,而对于其他区域设置,则可能为“US$”。如果无法确定符号,则返回 ISO 4217 货币代码。如果默认
DISPLAYlocale 包含“rg”(区域覆盖) Unicode 扩展 ,则从此方法返回的符号反映使用该扩展名指定的值。这相当于调用
getSymbol(Locale.getDefault(Locale.Category.DISPLAY))。- 返回:
-
默认
DISPLAYlocale的此货币符号
-
getSymbol
获取此货币在指定区域的符号。例如,对于美元,如果指定的区域设置为美国,则符号为“$”,而对于其他区域设置,则可能为“US$”。如果无法确定符号,则返回 ISO 4217 货币代码。如果指定的
locale包含“rg”(区域覆盖) Unicode 扩展 ,则从此方法返回的符号反映使用该扩展名指定的值。- 参数:
locale- 需要此货币的显示名称的locale- 返回:
- 此货币在指定区域的符号
- 抛出:
NullPointerException- 如果locale为空
-
getDefaultFractionDigits
public int getDefaultFractionDigits()获取此货币使用的默认小数位数。请注意,小数位数与 ISO 4217 的货币小数位相同。例如,欧元的默认小数位数为 2,而日元为 0。对于伪货币,例如 IMF 特别提款权,返回 -1。- 返回:
- 此货币使用的默认小数位数
-
getNumericCode
public int getNumericCode()返回此货币的 ISO 4217 数字代码。- 返回:
- 此货币的 ISO 4217 数字代码
- 自从:
- 1.7
-
getNumericCodeAsString
返回此货币的 3 位 ISO 4217 数字代码作为String。与getNumericCode()将数字代码返回为int不同,此方法始终将数字代码作为 3 位字符串返回。例如,数值 32 将返回为“032”,数值 6 将返回为“006”。- 返回:
-
此货币的 3 位 ISO 4217 数字代码作为
String - 自从:
- 9
-
getDisplayName
获取适合在默认DISPLAY区域设置中显示此货币的名称。如果没有为默认区域设置找到合适的显示名称,则返回 ISO 4217 货币代码。这相当于调用
getDisplayName(Locale.getDefault(Locale.Category.DISPLAY))。- 返回:
-
默认
DISPLAY区域设置的此货币的显示名称 - 自从:
- 1.7
-
getDisplayName
获取适合在指定区域显示此货币的名称。如果没有为指定的locale找到合适的显示名称,则返回 ISO 4217 货币代码。- 参数:
locale- 需要此货币的显示名称的locale- 返回:
- 此货币在指定locale中的显示名称
- 抛出:
NullPointerException- 如果locale为空- 自从:
- 1.7
-
toString
返回此货币的 ISO 4217 货币代码。
-