-1

2回比較しようとしていますが、どうすればよいかわかりません。例がありません。教えてください

SimpleDateFormat stDateSimple1 = new SimpleDateFormat(" HH:mm:ss");
String str1= (String)stDateSimple1.format(cal.getTime());
System.out.println("str1-->"+str1);

String starttime="8:30:00";
String endtime="10:30:00";

if(starttime<str1 || endtime>str1  ){
    System.out.println("Display");
}else{
    System.out.println("Dont recortDisplay");
}

この取得エラーを試してみました。時間の状態を確認するにはどうすればよいですか

ありがとう、
 svn

4

4 に答える 4

3

Joda Timeを使用できます。次のような本当に素晴らしいメソッドがありますisBefore()

ここに画像の説明を入力

使用例を次に示します。

DateFormat df = new SimpleDateFormat("HH:mm:ss");
String starttime="8:30:00";
String endtime="10:30:00";

DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm:ss");
DateTime dateTime1 = fmt.parseDateTime(starttime);
DateTime dateTime2 = fmt.parseDateTime(endtime);


if (dateTime1.isBefore(dateTime2)){
    System.out.println("awesome");
}
于 2013-01-03T07:32:53.637 に答える
1

<演算子を使用して文字列を比較しようとしています。代わりに、時間文字列を Date オブジェクトにフォーマットしてから、それらの日付オブジェクトを比較する必要があります

このようなものがうまくいくはずです。

if (new SimpleDateFormat("HH:mm:ss").parse(yourSring).compareTo(new Date()) > 0) {
   ...
}

AM と PM がないので、時刻は 24 時間形式のようです。12 時間形式の場合は、書式文字列を使用する必要があります"hh:mm:ss"

于 2013-01-03T07:23:31.310 に答える
1

これを試すことができます。

// AM/PM Format



public boolean compareTime(String t1, String t2) 
{
        try
        {
            SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss a");

            long time1 = format.parse(t1).getTime();
            long time2 = format.parse(t2).getTime();
                return time1 > time2;
         } 
         catch(ParseException e)
         {
                return false;
         }      


}
于 2013-01-03T07:34:58.353 に答える
0

Calendarインスタンスですでに時間を設定している場合はcompareTo()、日付部分を無視する場合は、一般的な値に設定してください。

于 2013-01-03T07:17:40.097 に答える