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

使用Java将给定日期的时间与两个给定的时间字符串进行比较,java,java-7,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------

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

我要做的第一件事是将这些值转换成一些易于比较的格式。在我看来,这是在使用Java8的时间API(或者JodaTime,或者如果您仍然使用Java的早期版本,则使用类似的API)

因此,比较这些值就变得很简单了

System.out.println(ldt.toLocalTime().equals(startTime) ||
                                     ldt.toLocalTime().isAfter(startTime));

我将让您来计算“之前”的比较;)

我要做的第一件事是将这些值转换成一些易于比较的格式。在我看来,这是在使用Java8的时间API(或者JodaTime,或者如果您仍然使用Java的早期版本,则使用类似的API)

因此,比较这些值就变得很简单了

System.out.println(ldt.toLocalTime().equals(startTime) ||
                                     ldt.toLocalTime().isAfter(startTime));

我将让您来计算“之前”的比较;)

将时间值转换为
LocalTime
,并使用这些值与
Date
值进行比较(我将其转换为
LocalDateTime
对象)-您实际上已经问了两个问题-将
字符串
转换为时间值,并将所述值与
日期
对象进行比较-我将重点了解如何实现这些目标之一根据Oracle文档,大多数日期方法都不推荐用于和。因此,.@hwdbc自Java 8以来-强烈建议使用新的时间API-因为
Calendar
是一个。。。良好意图的好例子bad@MadProgrammer你的陈述有证据吗?至少,我不知道你指的是哪种API。另外,我看到的大多数方法都是不推荐的。@hwdbc,如果需要将时间值转换为
LocalTime
,并使用它们与
Date
值进行比较(我会将其转换为
LocalDateTime
对象)-您实际上已经问了两个问题-将
字符串
转换为时间值,并将所述值与
日期
对象进行比较-我将重点了解如何实现这些目标之一根据Oracle文档,大多数日期方法都不推荐用于和。因此,.@hwdbc自Java 8以来-强烈建议使用新的时间API-因为
Calendar
是一个。。。良好意图的好例子bad@MadProgrammer你的陈述有证据吗?至少,我不知道你指的是哪种API。另外,我看到的大多数方法都是不推荐的。@hwdbc-Well,,如果您需要或
!ldt.toLocalTime().isBefore(startTime)
@shmosel我假设需要对“结束时间”进行额外的比较,尽管在本例中,我做了一个包含性检查,您只需删除
equals
即可排除
startTime
@shmosel疲劳-我假设
startTime>now&&endTime
-因此,如果听说使用Java 8是一个简单的解决方案,则需要进行范围检查,但不幸的是,我需要在Java 7中运行此逻辑:(@HarishThulasiRam有两个库,JodaTime,它是时间API的前身,也是当前Java早期版本的时间API的后端口-或者使用,说真的,你会非常高兴的。
!ldt.toLocalTime().isBefore(startTime)
@shmosel我假设需要与“结束时间”进行额外的比较,虽然在这个例子中,我做了一个包含性检查,但您只需删除
equals
就可以排除
startTime
@shmosel疲倦-我假设
startTime>now&&endTime
-所以需要进行范围检查-很高兴听到这是一个使用Java 8的简单解决方案,但不幸的是我的要求运行此逻辑的方法是使用java 7:(@HarishThulasiRam有两个库,JodaTime,它是Time API的前身,也是早期版本java的当前Time API的后端口-无论使用哪一个,说真的,您都会非常高兴