java - 使用 Java 将给定日期的时间与两个给定时间字符串进行比较

标签 java java-7

我有一个方法,它接受两个时间字符串的参数,例如: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/

相关文章:

java - 在Java中将字节数组转换为整数,反之亦然

java - Java中内存屏障的行为

java - Scala 到 Java(函数式编程)

JavaFX 未在 Netbeans 中编译

java - 从 JSP 中取回对象

java - 表示 DFA 的数据结构

java - 从 Java 7 中运行的 jar 中提取资源文件夹

eclipse - 如何在eclipse中安装jdk 7

java - 找不到 Artifact com.sun :tools:jar:1. 7

java - 使用 map 检查是否包含数组。但不起作用