Currency
该类的设计使得任何给定货币的实例永远不会超过一个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类,因为它可以更好地处理浮点数及其操作。
推荐阅读