我正在评估将我的项目从使用Joda-Time迁移到java.time package中的Java 8。在Joda-Time,我大量使用了Interval
类。我在java.time中找不到这样的东西。
有类似的课吗?
对不起,JSR-310到JodaTime-Interval-class没有相应的内容。我怀疑这是否会发生,但项目负责人Stephen Colebourne认为至少在他的外部库Threeten-Extra的范围内支持它,请参阅此issue。
如果你对JodaTime感到满意,你应该保留它。并非JodaTime中的所有内容都移植到Java 8(Interval不是唯一的问题)。
2014-12-13更新:
Java-8中的情况没有改变,但您可能还会考虑除Joda-Time之外的其他外部库。 Threeten-Extra现在包括一个非常简单的间隔类,自v0.9(参见S. Colebourne的另一个答案)或我的库Time4J,它提供the range package自v2.0以来。
JDK 8 JSR-310没有Interval
类。间隔的概念被描述以确保库的其余部分可以完成。
ThreeTen-Extra项目托管其他非JDK日期时间类,v0.9包含Interval
。
注意:答案更新2014-12-10,以包括在ThreeTen-Extra中存在Interval
。
使用Guava的Range类。
有关详细信息,请参阅https://stackoverflow.com/a/23485533/1214902。
类java.time.Duration可能会提供类似的功能。一般来说java 8时间包非常全面和灵活