java - 是否有一个 java 类代表两个瞬间之间的范围?

标签 java java-time

我确实想检查 Instant 是否在其他两个瞬间之间:

目前我使用:

import java.time.format.DateTimeFormatter;
import java.time.Instant;

Instant start = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse("2016-10-25T12:31:39.084726218Z"));
Instant end = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse("2016-10-25T13:31:39.084726218Z"));


// for exclusive range 
Instant testSubject1 = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse("2016-10-25T12:31:40Z"));
boolean isInRange1 = testSubject1.isAfter(start) && testSubject1.isBefore(end); // this works as exclusive range

//for inclusive range
Instant testSubject2 = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse("2016-10-25T12:31:39.084726218Z"));
boolean isInRange2 = (testSubject2.equals(start) || testSubject2.isAfter(start)) && (testSubject2.equals(end) || testSubject2.isBefore(end)); // inclusive range

是否有任何其他实用函数是标准库或其他地方允许这种范围检查的简化方法?

我正在寻找类似的东西:

new InstantRange(start,end).checkInstantWithin(testSubject1); 

// or

InstantUtils.inRangeExclusive(start,end, testSubject1);
InstantUtils.inRangeInclusivestart,end, testSubject1);

最佳答案

您可以在 ThreeTen-Extra 中使用 Interval对于这样的任务。 (假设您愿意拉入图书馆)

关于java - 是否有一个 java 类代表两个瞬间之间的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58730007/

相关文章:

java - 为扫描仪创建专用类是一个有用的输入解决方案吗?

java - 在java中将类类型保存为Type数据类型

java - JUnit 使用 h2 数据库测试 flywaydb

java - 如何使用 java.time 从带有年和周的字符串中解析日期

Java 8 DateTimeFormatter 解析在未来很远的 ISO 日期失败

jsf - 如何在 p :calendar 中使用 java.time.ZonedDateTime/LocalDateTime

java - 节省定时器时间并在 onResume 上恢复

java - 如何防止 <%@page... %> 属性添加 <BR/>

java - 如何在 Java 中查看本地化 `FormatStyle` 的 `DateTimeFormatter` 的每个排列?

java - 使用 java.time 根据时区转换时间