Jodatime中的java LocalDate间隔
Joda time有一个Interval类,它是介于DateTimes之间的一个范围。什么可以用于LocalDates的范围
我想要一个对象表示,例如“从2011年1月1日到2011年10月1日”,没有时间(或时区)进入图片
据我所知,《乔达时代》并没有为此做任何准备。
如果它不存在任何东西,我们会创建它,它应该是什么样子?最重要的是,它可以实现来自joda time的哪些接口以最好地集成到其他类型中,从而与joda time设计保持一致?
它实现ReadableInterval
是否有意义,其中getStart
和getEnd
返回DateMidnight
# 1 楼答案
我也需要LocalDate对象的间隔,但JodaTime不支持。 所以我必须创建自己的实现。后来我决定对它稍加润色,使其开源
您可以查看:https://github.com/serddmitry/joda-interval(可在Maven Central上获得)
# 2 楼答案
这对我有用
# 3 楼答案
{a1}类表示从一毫秒到另一毫秒的时间间隔(包括时区)DateMidnight就是这样一个瞬间。因此,您提议的DateMiddings间隔的实现已经准备就绪
然而,你对LocalDates的搜索间隔(不含时区)的概念还不存在。如果你想自己实现它,就不要实现任何间隔接口。它会干扰你的愿望,因为正如前面所说,它是基于瞬间的
# 4 楼答案
编辑:哎呀,之前误读了
不,据我所知,在乔达的时间里没有任何等价物
就个人而言,我会创建自己的类,其中包括开始和结束日期:
LocalDateInterval
或类似的内容。我不会为此重用Interval
,因为这会混淆概念:一对LocalDate
值并不代表两个瞬间,因为本地日期实际上不是瞬间就我个人而言,我不觉得
Interval
在乔达时代特别有用。。。我一直在考虑把它从野田佳彦身上移除。现在听起来我不应该;)# 5 楼答案
请注意,在DST开关处使用
DateMidnight
将失败。最好使用date.toDateTimeAtStartOfDay()
进行转换# 6 楼答案
我通常使用番石榴的Range类
它支持开放式范围。也可以指定包含或排除边界。在众多的可能性中,这些可以很容易地表示“日期之前”或“日期之后”
开放式间隔的示例
它还提供了简单的测试谓词,比如contains和containsAll,以及一个交集操作。所有这些都经过了测试和维护