0

の日付形式millisecondsと の時刻形式を変換しましたmilliseconds。現在の時刻を よりも長く取得してい13 digitsます。CurrentTime= 1357755780000StartingTime=1357602840EndingTime=1357756140

しかし、以下のコードで比較すると、そのif部分は実行されず、そのelse部分だけが実行されます。

私のコードに間違いはありますか?currentTime を 10 桁にしたい。だから、日付形式をミリ秒に変換するのは間違っていると思います。

 String toParse = getDateorTime(1) + " " + getDateorTime(2);
 long currentTime=0,startingTime=0,endingTime=0,milliseconds=0;
 try 
 {
    dateFormater = new SimpleDateFormat("yyyy/MMM/dd hh:mm"); 
    Date date = null;
    try {
       date = dateFormater.parse(toParse);
       date.setTime(milliseconds);
    }catch (Exception e) {
       System.out.println("\n Error in date parsing"+e.toString());
    }
    currentTime = (date.getTime());
    start=Long.parseLong((cursor.getString(5).trim()));
    end=Long.parseLong((cursor.getString(6).trim()));
 }catch (ParseException pe) {
    pe.printStackTrace();
 }

 if((currentTime>=startingTime)&&(currentTime<=endingTime))
 {
   //
 }
4

3 に答える 3

0

あなたの例に基づいて、あなたは実際に秒を持っていstartingTimeますが、ミリendingTime秒と比較していますcurrentTime。次のように、単純に 2 回目に 1,000 を掛けます。

if((currentTime>=startingTime*1000L)&&(currentTime<=endingTime*1000L))
于 2013-01-09T05:20:12.547 に答える
0

単純に割る1000

Calendar cal = Calendar.getInstance();

System.out.println(cal.getTimeInMillis()/1000);
于 2013-01-09T05:21:07.417 に答える
0

long 値を文字列に変換し、長さが >10 の場合は値 (0,10) を部分文字列にするだけで、string .equals も使用するか、比較のために long に戻すことができます。

于 2013-01-09T05:33:51.413 に答える