实现比特币和java.util.Currency

时间:2013-12-09 15:30:27

标签: java java-7 currency bitcoin

我正在尝试添加比特币作为货币在我的网站上显示。我有汇率和一切,但每当我使用IllegalArgumentException时我都会收到java.util.Currency.getInstance("BTC")。这是有道理的,因为它没有包含在ISO 4217货币代码列表中,也没有包含在Java 7中。我已经看到了几个选项,但没有什么能真正解决我的问题。

  1. 根据Java platform docs,您可以通过创建文件$JAVA_HOME/lib/currency.properties来覆盖特定区域设置的货币。这是一个问题,因为比特币不依赖于特定的区域,也不应该用来代替任何国家的货币。

  2. this StackOverflow帖子中提出了另一个类似的情况,其中中国有第二个货币代码可供使用,因此解决方案是构建自己的currency.data文件,添加第二种货币对于中国的地方。这样做会更好,但仍然存在将货币绑定到区域设置的问题。

  3. 是否有人遇到此问题或找到了解决方法?我知道比特币相对较新,但能够以比特币格式显示价格会很酷。

2 个答案:

答案 0 :(得分:9)

您不能在ISO 4217下使用BTC作为比特币的货币代码。不丹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])");

答案 1 :(得分:-3)

如何处理比特币资金在文档中得到了很好的解释。看一下这个https://en.bitcoin.it/wiki/Proper_Money_Handling_(JSON-RPC)

希望有所帮助