当我在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:值太大:1000错误。但是,何时
Double julianDateDouble = (double)2452558.67;
双朱利安值正确转换为2002-10-11 04:04:48.000。对于我所拥有的一堆朱利安日期值也是如此。
答案 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