使用Java将给定日期的时间与两个给定的时间字符串进行比较
我有一个方法,它接受两个时间字符串的参数,例如:t1-09:00和t2-15:00,以及一个日期参数 我想实现一个解决方案,其中给定的起始时间是否在通过的时间范围内 提前谢谢使用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------
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的后端口-无论使用哪一个,说真的,您都会非常高兴