实现Bitcoin和java.util.Currency

我试图添加比特币作为我的网站上显示的货币.我有汇率和所有东西,但是每当我使用 java.util.Currency.getInstance(“BTC”),我都会得到一个IllegalArgumentException.这是有道理的,因为它不包括在 ISO 4217货币代码列表中,也没有包含在Java 7中.我看过几个选项,但没有什么可以解决我的问题.

>根据Java platform docs,您可以通过创建一个文件$JAVA_HOME / lib / currency.properties覆盖特定的区域设置的货币.这是一个问题,因为比特币不是绑定到特定的地区,也不应该用来代替任何国家的货币.
>另一个类似的情况在this StackOverflow post中提出,其中中国有第二个货币代码被使用,所以解决方案是建立你自己的currency.data文件,为中国地区添加第二种货币.这更好,但仍然存在将货币与当地价格挂钩的问题.

有没有人遇到这个问题或找到解决方法?我知道比特币是比较新的,但是能够以比特币格式显示价格将会很棒.

您不能使用BTC作为不丹 ISO 4217. BT is reserved的比特币的货币代码.但是,ISO 3166-1 reserves several country codes用于用户定义.另外, ISO 4217 lists XBT的维基作为比特币的货币代码(当然是非官方的).

Locale.Builder b = new Locale.Builder();
b.setRegion("XB");
Locale xb = b.build();
Currency bitcoin = Currency.getInstance(xb);

您的currency.properties文件将如下所示:

XB=XBT,000,3

不幸的是,您无法使用8 for the minor unit,因为java.util.Currency的解析仅处理0-3的次要单元:

Pattern propertiesPattern = Pattern.compile("([A-Z]{3})\\s*,\\s*(\\d{3})\\s*,\\s*([0-3])");
相关文章
相关标签/搜索