I have to save the data in a database including dates in UTC.
How can I obtain a Java Instant from an AbsoluteDate?
Thanks in advance.
It is slightly complicated, especially if you want to preserve nanoseconds accuracy.
Here is one way to do it:
long l = (long) FastMath.floor(date.offsetFrom(AbsoluteDate.JAVA_EPOCH, utc)); long n = (long) FastMath.rint(date.durationFrom(new AbsoluteDate(AbsoluteDate.JAVA_EPOCH, l, utc)) * 1.0e9); Instant instant = Instant.ofEpochSecond(l, n);
We could probably add converters from/to
Instant as we already have some for
java.util.Date, this would involve less computation than the workaround above since we would have access to some private fields in
AbsoluteDate. Could you open a feature request in our forge?
In fact I had problems with the accuracy.
I will try as you suggested.
I will open the request in your forge as soon as my account is active.
I created the issue: add converters AbsoluteDate from/to Instant (#1272) · Issues · Orekit / Orekit · GitLab.