2

紛らわしい..時間を比較する場合のように、文字列は絶対にお勧めできません...しかし、(HH:mm:ss)の形式の場合。それらを比較して何かを行うにはどうすればよいですか?

例: ターゲット 1: 9:00:00 ターゲット 2: 23:00:00

入力が Target1 よりも大きく、Target2 よりも小さい比較のロジックを実行する方法は?

if(input > Target1 && input < Target2){
  //do statement A
}else{
  //do statement B
}

したがって、入力時間が 10:00:00 の場合はステートメント A を実行し、入力時間が 23:01:00 の場合はステートメント B を実行する必要があります。より大きく (>) より小さく (<) の時刻形式は適切ですか?

4

3 に答える 3

1

それらを文字列として指定すると、SimpleDateFormat から Date オブジェクトに変換できます。

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");

最も簡単な方法は、次のようにしてミリ秒単位に変換することです。

long time1 = sdf.parse(Target1).getTime();
long time2 = sdf.parse(Target2).getTime();
long inputTime = sdf.parse(input).getTime();

このようにして、本質的に整数比較を行っており、すべての日時ビジネスを忘れることができます。

if(inputTime > time1 && inputTime < time2)
于 2013-03-22T07:17:07.340 に答える
0

カレンダー関数.getTimeInMillis()を使用して差分を計算し、2つの差分時間の差分を取得できます。ここでは、カレンダーで特定の時刻のみを設定し、それと比較する必要があります。

try{
            Calendar calender = Calendar.getInstance();
            Calendar calDb = Calendar.getInstance();
            Calendar matchd = Calendar.getInstance();

            mYear = calender.get(Calendar.YEAR);
            mMonth = calender.get(Calendar.MONTH);
            mDay = calender.get(Calendar.DAY_OF_MONTH);

            mendYear = calDb.get(Calendar.YEAR);
            mendMonth = calDb.get(Calendar.MONTH);
            mendDay = calDb.get(Calendar.DAY_OF_MONTH);    
                       // Here you can change day values        
                    calDb.set(Calendar.DAY_OF_MONTH, mDay-1);

            strbeforedate = mDateFormat.format(calDb.getTime());
            curentdate = mDateFormat.format(calender.getTime());

            calDb.setTime(mDateFormat.parse(strbeforedate));
            calender.setTime(mDateFormat.parse(curentdate));



            String mydate = "2013.03.14 03:11";
            String mdatetime = "";

            deletepath =  new ArrayList<String>();          

                try{
                    // here your matching goes and pass date here 

                     matchd.setTime(mDateFormat.parse(mdatetime));
                     long diff = calDb.getTimeInMillis() - calender.getTimeInMillis();
                     long matchdiff = matchd.getTimeInMillis() - calender.getTimeInMillis();
                        if(diff < matchdiff){

                                     // do your work here
                        }else{

                         // do your else work here

                        }
                }catch(Exception e){
                    e.printStackTrace();
                }                   
        }

        }catch(Exception e){
            e.printStackTrace();
        }

    }
于 2013-03-22T08:04:49.527 に答える
0
SimpleDateFormat df=new SimpleDateFormat("hh:mm:ss");             
Date d1=df.parse(dateToPars); 

d1.after(otherTimeYouWantTocompare);  OR 
d1.before(otherTimeYouWantTocompare); 

ただし、上記の形式で時間を提供する必要があります

于 2013-03-22T07:20:35.023 に答える