我知道有很多关于如何在Java语言中获得Date
的问题,但我想要一个使用新的Java8 Date
API的例子。我也知道JodaTime库,但我想要一个不依赖外部库的方法。
该函数需要符合以下限制:
从日期防止错误savetime
LocalDateTime
,但我需要用Date
实例来做这件事)发布于 2014-11-19 07:24:13
如果需要逻辑日历天数,请使用java.time.temporal.ChronoUnit
中的DAYS.between()
方法
LocalDate dateBefore;
LocalDate dateAfter;
long daysBetween = DAYS.between(dateBefore, dateAfter);
如果您想要24小时天(持续时间),则可以改用Duration
类:
LocalDate today = LocalDate.now()
LocalDate yesterday = today.minusDays(1);
// Duration oneDay = Duration.between(today, yesterday); // throws an exception
Duration.between(today.atStartOfDay(), yesterday.atStartOfDay()).toDays() // another option
有关更多信息,请参阅this document。
发布于 2014-11-19 07:29:57
基于VGR的评论,这里是你可以使用的:
ChronoUnit.DAYS.between(firstDate, secondDate)
发布于 2015-08-31 00:57:13
您可以使用until()
LocalDate independenceDay = LocalDate.of(2014, Month.JULY, 4);
LocalDate christmas = LocalDate.of(2014, Month.DECEMBER, 25);
System.out.println("Until christmas: " + independenceDay.until(christmas));
System.out.println("Until christmas (with crono): " + independenceDay.until(christmas, ChronoUnit.DAYS));
输出:
Until christmas: P5M21D
Until christmas (with crono): 174
正如comment - first untill()
返回Period中提到的。
文档中的代码片段:
在ISO8601日历系统中基于日期的时间量,例如“2年3个月4天”。
此类以年、月和天为单位模拟时间量或时间量。有关此类的基于时间的等价物,请参见持续时间。
https://stackoverflow.com/questions/27005861
复制相似问题