检查两个时间之间的一个给定的时间处于日期不管时间、两个、日期

2023-09-05 23:33:28 作者:点绛唇

我有时间跨度:

字符串时间1 = 01:00:00

String time1 = 01:00:00

字符串时间2 = 05:00:00

String time2 = 05:00:00

我要检查时间1 和时间2 的 20时11分13秒和14:49:00 。

其实, 01:00:00 大于 20点11分十三秒并小于 14:49:00 考虑 20点11分13秒总是比 14:49:00 。这是给prerequisite。

Actually, 01:00:00 is greater than 20:11:13 and less than 14:49:00 considering 20:11:13 is always less than 14:49:00. This is given prerequisite.

所以,我要的是, 20时11分13秒< 01:00:00< 14:49:00

所以,我需要这样的事情:

So I need something like that:

 public void getTimeSpans()
{
    boolean firstTime = false, secondTime = false;

    if(time1 > "20:11:13" && time1 < "14:49:00")
    {
       firstTime = true;
    }

    if(time2 > "20:11:13" && time2 < "14:49:00")
    {
       secondTime = true;
    }
 }

我知道,这code没有给出正确的结果,因为我比较字符串对象。

I know that this code does not give correct result as I am comparing the string objects.

如何做到这一点,因为他们的时间跨度,但不是要比较的字符串?

How to do that as they are the timespans but not the strings to compare?

推荐答案

您可以使用,以检查日历类。

You can use the Calendar class in order to check.

例如:

try {
    String string1 = "20:11:13";
    Date time1 = new SimpleDateFormat("HH:mm:ss").parse(string1);
    Calendar calendar1 = Calendar.getInstance();
    calendar1.setTime(time1);

    String string2 = "14:49:00";
    Date time2 = new SimpleDateFormat("HH:mm:ss").parse(string2);
    Calendar calendar2 = Calendar.getInstance();
    calendar2.setTime(time2);
    calendar2.add(Calendar.DATE, 1);

    String someRandomTime = "01:00:00";
    Date d = new SimpleDateFormat("HH:mm:ss").parse(someRandomTime);
    Calendar calendar3 = Calendar.getInstance();
    calendar3.setTime(d);
    calendar3.add(Calendar.DATE, 1);

    Date x = calendar3.getTime();
    if (x.after(calendar1.getTime()) && x.before(calendar2.getTime())) {
        //checkes whether the current time is between 14:49:00 and 20:11:13.
        System.out.println(true);
    }
} catch (ParseException e) {
    e.printStackTrace();
}