我有一个方法,它接受两个时间字符串的参数,例如:t1 - 09:00 和 t2 - 15:00 以及一个日期参数。
我想实现一个解决方案,其中给定的日期时间是否在通过的时间范围之内或之内。
提前致谢
public class CheckTime {
private boolean isOpen;
public boolean isValid(String time1, String time2, Date date) {
----Logic goes here------
return isOpen;
}
public static void main(String[] args) {
new CheckTime().isValid("09:00","15:00",
new Date(System.currentTimeMillis()));
}
}
最佳答案
我要做的第一件事是将这些值转换为某种可以轻松比较的格式。在我看来,这是使用 Java 8 的 Time API(如果您仍在使用早期版本的 Java,则使用 JodaTime 或此类 API)
Date now = new Date();
LocalDateTime ldt = LocalDateTime.ofInstant(now.toInstant(), ZoneId.systemDefault());
String startValue = "09:00";
LocalTime startTime = LocalTime.parse(startValue, DateTimeFormatter.ISO_LOCAL_TIME);
从此,比较值就变成了简单的事情
System.out.println(ldt.toLocalTime().equals(startTime) ||
ldt.toLocalTime().isAfter(startTime));
我将让您来弄清楚“之前”的比较;)
关于java - 使用 Java 将给定日期的时间与两个给定时间字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45317396/