I'm evaluating to migrate my project from the usage of Joda-Time to the java.time package in Java 8. In Joda-Time, I heavily used the Interval class. I could not find anything like this in java.time.
Is there a comparable class?
I'm evaluating to migrate my project from the usage of Joda-Time to the java.time package in Java 8. In Joda-Time, I heavily used the Interval class. I could not find anything like this in java.time.
Is there a comparable class?
Sorry for you, there is no equivalent in JSR-310 to JodaTime-Interval-class. I have doubts if this will ever come, but project lead Stephen Colebourne considers at least to support it in the scope of his external library Threeten-Extra, see this issue.
If you are happy with JodaTime you should keep it. Not everything in JodaTime is ported to Java 8 (Interval is not the only issue).
Update from 2014-12-13:
The situation in Java-8 has not changed, but you might also consider other external libraries beyond Joda-Time. Either Threeten-Extra which now includes a very simple interval class since v0.9 (see the other answer of S. Colebourne here) or my library Time4J which offers the range package since v2.0.
Duration (and Period, too) is not anchored on a given timeline, that means has no defined start time, just a length. In contrast, an interval always has a start and an end time.JDK 8 JSR-310 does not have an Interval class. The concept of intervals was descoped to ensure that the rest of the library could be completed.
The ThreeTen-Extra project hosts additional non-JDK date-time classes, and v0.9 includes Interval.
Note: Answer updated 2014-12-10 to include presence of Interval in ThreeTen-Extra.
Interval could be confusing, ambiguous, and dangerous. Dangerous because an Interval is still within the frame of the exact dates (it has an end-date and begin-date), which is something that could be easily missed? I think that the omission of Interval made it a cleaner implementation? Period and Duration are to me alternatives without the drama.Use Range class from Guava.
See https://stackoverflow.com/a/23485533/1214902 for more details.
Class java.time.Duration may give you similar functionality. In general java 8 time package is very comprehensive and flexible
Duration does not have a begin/end time. Interval does.