我正在尝试添加比特币作为货币在我的网站上显示。我有汇率和一切,但每当我使用IllegalArgumentException
时我都会收到java.util.Currency.getInstance("BTC")
。这是有道理的,因为它没有包含在ISO 4217货币代码列表中,也没有包含在Java 7中。我已经看到了几个选项,但没有什么能真正解决我的问题。
根据Java platform docs,您可以通过创建文件$JAVA_HOME/lib/currency.properties
来覆盖特定区域设置的货币。这是一个问题,因为比特币不依赖于特定的区域,也不应该用来代替任何国家的货币。
在this StackOverflow帖子中提出了另一个类似的情况,其中中国有第二个货币代码可供使用,因此解决方案是构建自己的currency.data
文件,添加第二种货币对于中国的地方。这样做会更好,但仍然存在将货币绑定到区域设置的问题。
是否有人遇到此问题或找到了解决方法?我知道比特币相对较新,但能够以比特币格式显示价格会很酷。
答案 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)
希望有所帮助