- 所有已实现的接口:
-
Serializable
该类设计为对于任何给定货币,永远不会有多个Currency
实例。因此,没有公共构造函数。您可以使用getInstance
方法获取Currency
实例。
用户可以通过系统属性java.util.currency.data
覆盖Java运行时货币数据。如果定义了此系统属性,则其值是属性文件的位置,其中的内容是ISO 3166国家代码和ISO 4217货币数据的键/值对。值部分由货币的三个ISO 4217值组成,即字母代码、数字代码和小数单位。这三个ISO 4217值由逗号分隔。以'#'开头的行被视为注释行。如果用户需要指定新数据生效的过渡日期,则可以为每个货币条目指定可选的UTC时间戳。时间戳附加在货币属性的末尾,并使用逗号作为分隔符。如果存在并且有效,则JRE只有在当前UTC日期晚于类加载时指定的日期时才使用新的货币属性。时间戳的格式必须是ISO 8601格式:'yyyy-MM-dd'T'HH:mm:ss'
。例如,
#示例货币属性
JP=JPZ,999,0
将覆盖日本的货币数据。如果JPZ是其他国家引用的现有ISO 4217货币代码之一,则现有的JPZ货币数据将使用给定的数字代码和小数单位值进行更新。
#带过渡日期的示例货币属性
JP=JPZ,999,0,2014-01-01T00:00:00
如果在2014年1月1日00:00:00 GMT之后加载Currency
类,则将覆盖日本的货币数据。
在遇到语法错误的条目时,将忽略该条目并处理文件中的其余条目。对于存在重复国家代码条目的情况,对于该Currency
的货币信息的行为是未定义的,并且将处理文件中的其余条目。
如果遇到具有相同货币代码但不同数字代码和/或小数单位的多个属性条目,则将忽略这些条目并处理文件中的其余条目。
建议在处理Currency
或货币值时使用BigDecimal
类,因为它提供了更好的浮点数处理和操作。
- 自从:
- 1.4
- 外部规范
- 另请参阅:
-
Method Summary
Modifier and TypeMethodDescription获取可用货币的集合。获取此货币的ISO 4217货币代码。int
获取与此货币一起使用的默认小数位数。获取适合在默认DISPLAY
区域设置下显示此货币的名称。getDisplayName
(Locale locale) 获取适合在指定区域设置下显示此货币的名称。static Currency
getInstance
(String currencyCode) 返回给定货币代码的Currency
实例。static Currency
getInstance
(Locale locale) 返回给定区域设置的国家的Currency
实例。int
返回此货币的ISO 4217数字代码。以String
形式返回此货币的3位ISO 4217数字代码。获取适合在默认DISPLAY
区域设置下显示此货币的符号。获取适合在指定区域设置下显示此货币的符号。toString()
返回此货币的ISO 4217货币代码。
-
Method Details
-
getInstance
返回给定货币代码的Currency
实例。- 参数:
-
currencyCode
- 货币的ISO 4217代码 - 返回:
-
给定货币代码的
Currency
实例 - 抛出:
-
NullPointerException
- 如果currencyCode
为null -
IllegalArgumentException
- 如果currencyCode
不是受支持的ISO 4217代码。
-
getInstance
返回给定区域设置的国家的Currency
实例。忽略区域设置的语言和变体组件。结果可能随时间变化,因为国家可能更改其货币。例如,对于欧洲货币联盟的原始成员国,该方法将返回旧的国家货币,直到2001年12月31日,并从2002年1月1日开始,各国的当地时间将返回欧元。如果指定的
locale
包含"cu"和/或"rg"Unicode扩展,则从此方法返回的实例反映了使用这些扩展指定的值。如果同时指定了"cu"和"rg",则来自"cu"扩展的货币将取代"rg"扩展的隐含货币。对于没有货币的领土,例如南极洲,该方法返回
null
。- 参数:
-
locale
- 需要Currency
实例的国家的区域设置 - 返回:
-
给定区域设置的国家的
Currency
实例,或null
- 抛出:
-
NullPointerException
- 如果locale
为null
-
IllegalArgumentException
- 如果给定locale
的国家不是受支持的ISO 3166国家代码。
-
getAvailableCurrencies
获取可用货币的集合。返回的货币集合包含所有可用的货币,这可能包括代表已过时的ISO 4217代码的货币。可以修改集合而不影响运行时的可用货币。- 返回:
- 可用货币的集合。如果运行时没有可用货币,则返回的集合为空。
- 自从:
- 1.7
-
getCurrencyCode
获取此货币的ISO 4217货币代码。- 返回:
- 此货币的ISO 4217货币代码。
-
getSymbol
获取适合在默认DISPLAY
区域设置下显示此货币的符号。例如,对于美元,如果默认区域设置是美国,则符号为"$",而对于其他区域设置可能为"US$"。如果无法确定符号,则返回ISO 4217货币代码。如果默认
DISPLAY
区域设置包含"rg"(区域覆盖)Unicode扩展,则从此方法返回的符号反映了使用该扩展指定的值。这相当于调用
getSymbol(Locale.getDefault(Locale.Category.DISPLAY))
。- 返回:
-
适合在默认
DISPLAY
区域设置下显示此货币的符号
-
getSymbol
获取适合在指定区域设置下显示此货币的符号。例如,对于美元,如果指定的区域设置是美国,则符号为"$",而对于其他区域设置可能为"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
以String
形式返回此货币的3位ISO 4217数字代码。与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
获取适合在指定区域设置下显示此货币的名称。如果在指定区域设置下找不到合适的显示名称,则返回ISO 4217货币代码。- 参数:
-
locale
- 需要为此货币获取显示名称的区域设置 - 返回:
- 指定区域设置下此货币的显示名称
- 抛出:
-
NullPointerException
- 如果locale
为null - 自版本:
- 1.7
-
toString
返回此货币的ISO 4217货币代码。
-