首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Money被挂起汇率

Java Money被挂起汇率
EN

Stack Overflow用户
提问于 2021-05-27 19:39:44
回答 1查看 151关注 0票数 0

我正在尝试使用java money-api和moneta存储库进行简单的货币转换。

代码语言:javascript
复制
<dependency>
    <groupId>javax.money</groupId>
    <artifactId>money-api</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>org.javamoney</groupId>
    <artifactId>moneta</artifactId>
    <version>1.4.2</version>
</dependency>
代码语言:javascript
复制
IMFHistoricRateProvider imf = new IMFHistoricRateProvider();

LocalDate now = LocalDate.now();
ExchangeRate exr = null;
long start = System.currentTimeMillis();
LocalDate date = LocalDate.parse("2021-05-25", DateTimeFormatter.ISO_LOCAL_DATE);
exr = imf.getExchangeRate(ConversionQueryBuilder.of().setBaseCurrency("EUR").setTermCurrency("USD").set(LocalDate.class, date).build());
System.out.println(exr.getFactor() + " ==" + (System.currentTimeMillis()-start));

在这里,exr.getFactor()方法给出了给定日期的汇率,但它在一个状态下挂起了几个小时。

它挂起的PF日志。

代码语言:javascript
复制
May 27, 2021 4:59:26 PM org.javamoney.moneta.spi.loader.LoadDataLoaderService execute
INFO: Read data from: [https://www.imf.org/external/np/fin/data/rms_five.aspx?tsvflag=Y]
May 27, 2021 4:59:26 PM org.javamoney.moneta.convert.imf.IMFAbstractRateProvider newDataLoaded
INFO: Loaded IMFHistoricRateProvider exchange rates for days:50
May 27, 2021 4:59:26 PM org.javamoney.moneta.spi.loader.LoadDataLoaderService execute
INFO: New data successfully loaded from: [https://www.imf.org/external/np/fin/data/rms_five.aspx?tsvflag=Y]

它应该给出从欧元到美元的汇率从过去的X当地日期。

参考:https://dzone.com/articles/looking-java-9-money-and (汇率)

EN

回答 1

Stack Overflow用户

发布于 2021-06-14 20:54:23

我已经将依赖从moneta更改为更具体的汇率提供程序moneta-convert-ecb

代码语言:javascript
复制
<dependency>
    <groupId>javax.money</groupId>
    <artifactId>money-api</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>org.javamoney.moneta</groupId>
    <artifactId>moneta-core</artifactId>
    <version>1.4.2</version>
</dependency>
<dependency>
    <groupId>org.javamoney.moneta</groupId>
    <artifactId>moneta-convert-ecb</artifactId>
    <version>1.4.2</version>
</dependency>

也改变了

代码语言:javascript
复制
IMFHistoricRateProvider imf = new IMFHistoricRateProvider();

代码语言:javascript
复制
ExchangeRateProvider ecb = new ECBHistoricRateProvider();

尽管这一解决办法奏效了,但这只是将提供者从国际货币基金组织改为欧洲央行。

注:国际货币基金组织的表现仍然是一样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67721389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档