Joda setJulian非法论据例外

时间:2013-10-04 20:04:14

标签: java calendar jodatime

当我在joda time API中为某些julian double值调用setJulianDate方法时,我得到一个illegalArgument Exception。

JDateTime jdt = new JDateTime(); 
JulianDateStamp jdstamp = new JulianDateStamp(julianDateDouble);
jdt.setJulianDate(jdstamp);
System.out.println(jdt);

Double julianDateDouble = (double)2452555.13;

我得到java.lang.IllegalArgumentException:值太大:1​​000错误。但是,何时

Double julianDateDouble = (double)2452558.67;

双朱利安值正确转换为2002-10-11 04:04:48.000。对于我所拥有的一堆朱利安日期值也是如此。

1 个答案:

答案 0 :(得分:1)

我不确定,但似乎一切都指向浮点数的精度。您可以使用接受JulianDateStamp的{​​{1}}重载构造函数。

BigDecimal

打印

BigDecimal julianDateDouble = new BigDecimal("2452555.13");
JDateTime jdt = new JDateTime(); 
JulianDateStamp jdstamp = new JulianDateStamp(julianDateDouble);
jdt.setJulianDate(jdstamp);
System.out.println(jdt);

this Julian Date Converter验证。

如果您的输入是以2002-10-07 15:07:12.000 的形式出现,请使用

double