не в состоянии поймать определенный временной интервал в Java - PullRequest
0 голосов
/ 14 декабря 2018

Я работал в каком-то проекте, в котором требовалось проверить конкретное время, если между 08:00 и 12:00 временным интервалом.Я конвертировал даты в long и проверил разницу.Для всех остальных временных интервалов я получал положительный результат.Но когда я проверил с 8 вечера до 12 утра, я не получил выходной.ниже мой код:

package com.google.pulldata.utils;
import java.text.SimpleDateFormat;
public class Test2 {

    public static void main(String[] args) throws Exception{

        try {
            process1();
            process2();
        }catch(Exception ex) {
            ex.printStackTrace();
        }

    }

    private static void process1() throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd_hh_a");


        String dateRange1="2018_11_18_04_PM";
        String dateRange2="2018_11_18_08_PM";


        long dtRange1=sdf.parse(dateRange1).getTime();
        long dtRange2=sdf.parse(dateRange2).getTime();

        String dateTest = "2018_11_18_06_PM";
        long dtTest=sdf.parse(dateTest).getTime();


        if(dtTest>=dtRange1 && dtTest<=dtRange2) {
            System.out.println("yes time is between 04 PM to 08 PM slot");
        }
    }



    private static void process2() throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd_hh_a");


        String dateRange1="2018_11_18_08_PM";
        String dateRange2="2018_11_18_12_AM";


        long dtRange1=sdf.parse(dateRange1).getTime();
        long dtRange2=sdf.parse(dateRange2).getTime();

        String dateTest = "2018_11_18_10_PM";
        long dtTest=sdf.parse(dateTest).getTime();


        if(dtTest>=dtRange1 && dtTest<=dtRange2) {
            System.out.println("yes time is between 08 PM to 12 AM slot");
        }
    }
}

вывод:

yes time is between 04 PM to 08 PM slot

, как вы можете видеть, я получаю вывод для метода process1(), но не для 'proccess2() `.Кто-нибудь может мне помочь, почему это происходит?

1 Ответ

0 голосов
/ 14 декабря 2018

Потому что 2018_11_18_10_PM наступает после 2018_11_18_12_AM.

...