- java.lang.Object
-
- java.util.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
- 另请参见:
-
BigDecimal
, Serialized Form
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 static Set<Currency>
getAvailableCurrencies()
获取可用货币的集合。String
getCurrencyCode()
获取此货币的ISO 4217货币代码。int
getDefaultFractionDigits()
获取此货币使用的默认小数位数。String
getDisplayName()
获取适合为默认DISPLAY
语言环境显示此货币的名称。String
getDisplayName(Locale locale)
获取适合为指定区域设置显示此货币的名称。static Currency
getInstance(String currencyCode)
返回给定货币代码的Currency
实例。static Currency
getInstance(Locale locale)
返回给定语言环境的国家/地区的Currency
实例。int
getNumericCode()
返回此货币的ISO 4217数字代码。String
getNumericCodeAsString()
以String
返回此货币的3位ISO 4217数字代码。String
getSymbol()
获取默认DISPLAY
语言环境的此货币的符号。String
getSymbol(Locale locale)
获取指定语言环境的此货币的符号。String
toString()
返回此货币的ISO 4217货币代码。
-
-
-
方法详细信息
-
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
- 如果locale
是null
-
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()
获取适合为默认DISPLAY
区域设置显示此货币的名称。 如果找不到默认语言环境的合适显示名称,则返回ISO 4217货币代码。这相当于调用
getDisplayName(Locale.getDefault(Locale.Category.DISPLAY))
。- 结果
-
默认
DISPLAY
语言环境的此货币的显示名称 - 从以下版本开始:
- 1.7
-
getDisplayName
public String getDisplayName(Locale locale)
获取适合为指定区域设置显示此货币的名称。 如果找不到指定区域设置的合适显示名称,则返回ISO 4217货币代码。- 参数
-
locale
- 需要此货币的显示名称的区域设置 - 结果
- 指定区域设置的此货币的显示名称
- 异常
-
NullPointerException
- 如果locale
为空 - 从以下版本开始:
- 1.7
-
-