【发布时间】:2011-05-27 13:12:30
【问题描述】:
在 Java 中表示时间段的最佳方式是什么?我可以使用 2 个 Date 对象还是有更好的方法?
即整个 4 月、7 月的第 3 周、1 月至 3 月等。
【问题讨论】:
-
你的意思是代表什么?像 2011-04-01 到 2011-07-09?
-
@RMT 这正是我的意思
在 Java 中表示时间段的最佳方式是什么?我可以使用 2 个 Date 对象还是有更好的方法?
即整个 4 月、7 月的第 3 周、1 月至 3 月等。
【问题讨论】:
我看到答案很老了。
从Java 8 开始,我们可以使用部分基于Joda Time 的原生Java.Time,并且可以非常轻松地对日期进行操作。
看看Period、Duration和LocalDate上
【讨论】:
Interval 比使用新的 Java 8 对象更具表现力......没有什么可以与之相比的。您必须使用 2 个时间对象(就像我们过去所做的那样)或一个开始日期和一个句点......没办法
当涉及到时间 + Java 时,这里是 Joda 的常用链接:
http://joda-time.sourceforge.net/api-release/org/joda/time/Period.html
编辑:这个特定问题的相关链接是http://joda-time.sourceforge.net/api-release/org/joda/time/Interval.html
【讨论】:
Joda Time 解决您所有的日期/时间问题。它有一个数据范围类型。
【讨论】:
如果您出于某种原因想避免使用 Joda,那么编写一个包含一对日期(或底层 Long 值)的类就可以了,但是您需要编写比较范围或比较所需的任何方法确定日期是否在某个范围内等。
【讨论】:
如果您需要使用 2 个不同的日期,请使用 2 个不同的日期并使用 SimpleDateFormat。使用起来非常简单。
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
format.parse(new Date());
【讨论】:
如果我明白你想要什么。您可以简单地使用两个时间戳。另一种时间戳和周期时间。
【讨论】: