I have an instance of Instant (org.joda.time.Instant) which I get in some api response. I have another instance from (java.time.Instant) which I get from some other call. Now, I want to compare these two object to check which one get the latest one. How would it be possible?
getMillis()
from joda.time can be compared to toEpochMilli()
from java.time.
Class documentation:
Example code.
java.time.Instant myJavaInstant =
java.time.Instant.ofEpochMilli( myJodaInstant.getMillis() ) ;
Going the other way.
// Caution: Loss of data if the java.time.Instant has microsecond
// or nanosecond fraction of second.
org.joda.time.Instant myJodaInstant =
new org.joda.time.Instant( myJavaInstant.toEpochMilli() );
You can convert from joda Instant to java's (the datetime and formatting are just an example):
org.joda.time.Instant.parse("10.02.2017 13:45:32", DateTimeFormat.forPattern("dd.MM.yyyy HH:mm:ss")).toDate().toInstant()
So you call toDate()
and toInstant()
on your joda Instant.
parse
makes this answer confusing, but actually calling toDate
returns a java.util.Date
, which can be used to get the Instant... –
Uboat I think there is a bug in the Joda-Time sdk. It changes the time and time zone when you convert this way.
My original ISO string is: originalISOString = 2023-08-02T22:00:00.000+01:00
I run the step above as: org.joda.time.Instant.parse(originalISOString, ISODateTimeFormat.dateTime()).toDate().toInstant();
but after running through the step above, my resulting string (using Instant.toString()) is 2023-08-02T21:00:00Z
It has changed the time and the time zone.
Instant
gives you a date-time denoting a moment at UTC (which is specified by a Z
). –
Attribution © 2022 - 2024 — McMap. All rights reserved.