【发布时间】:2015-09-25 12:02:22
【问题描述】:
我是java新手。我有两个日期,例如 Fri Sep 25 00:00:00 IST 2015 和 2015 年 10 月 23 日星期五 00:00:00 IST 。我正在尝试获得周差,因此输出将是:-
Sep 25-Oct 1 2015, Oct 2-8 2015, Oct 9-15 2015, Oct 16-21 2015, Oct 22-23 2015
请帮帮我!我不想使用 joda 时间
【问题讨论】:
我是java新手。我有两个日期,例如 Fri Sep 25 00:00:00 IST 2015 和 2015 年 10 月 23 日星期五 00:00:00 IST 。我正在尝试获得周差,因此输出将是:-
Sep 25-Oct 1 2015, Oct 2-8 2015, Oct 9-15 2015, Oct 16-21 2015, Oct 22-23 2015
请帮帮我!我不想使用 joda 时间
【问题讨论】:
根据http://www.leveluplunch.com/java/examples/number-of-weeks-between-two-dates/ 在 Java 8 中:
public void weeks_between_two_dates_in_java_with_java8 () {
LocalDate startDate = LocalDate.of(2005, Month.JANUARY, 1);
LocalDate endDate = LocalDate.of(2006, Month.JANUARY, 1);
long weeksInYear = ChronoUnit.WEEKS.between(startDate, endDate);
assertEquals(52, weeksInYear);
}
Java 8 有相当不错的日期和时间 API,如您所见 http://www.joda.org/joda-time/
Joda-Time 是 Java 的事实上的标准日期和时间库。从 Java SE 8 开始,要求用户迁移到 java.time (JSR-310)。
【讨论】:
在这个thread 中,您可以看到如何获取日期差异。
所以根据我告诉你的主题,你可以通过这种方式改变周数:
long diff = d2.getTime() - d1.getTime();
int weeks = diff / (7 * 24 * 60 * 60 * 1000 );
这对应于每 24 小时每 60 分钟每 60 秒每 1000 毫秒 7 天。
【讨论】: