2017-11-17 8 views
1

私のアプリケーションにCountDownTimerを使用していますが、間違った時間が表示されています。 これは私が試みたものです。カウントダウンタイマーが間違った値を表示します:Android

long miliSecsDate = milliseconds ("2017-11-18 12:35"); 

変換日時カウントダウンタイマー

public void showCountdown(long miliSecsDate){ 
     new CountDownTimer(miliSecsDate, 1000) { 
      public void onTick(long millisUntilFinished) { 
       long seconds= TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished); 

       int minutes = (int)(seconds % 3600)/60; 
       int hours = (int)seconds/3600; 
       seconds = seconds % 60; 
       Log.d("time",""+hours+" : "+minutes+" : "+seconds); 
      } 
      public void onFinish() { 
       txtRemainingTime.setText("done!"); 
      } 

     }.start(); 
    } 

私のログの猫は

D/time: 419719 : 3 : 43

以下のように示す

public long milliseconds(String date) 
      { 
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
       try 
       { 
        Date mDate = sdf.parse(date); 
        long timeInMilliseconds = mDate.getTime(); 
        return timeInMilliseconds; 
       } 
       catch (ParseException e) 
       { 
        e.printStackTrace(); 
       } 
       return 0; 
      } 

ミリ秒までで
+0

あなたはそれがために何を期待しているTimeUnitクラスを使用したい場合は? –

+0

今日は2017-11-17時間です24.しかし、それは返品419719時間です – user8164155

+0

それは1970-01-01以来の時間数を返します –

答えて

0

使用してみてください:

String myDate = "2017-11-18 12:35"; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
    Date date = sdf.parse(myDate); 
    long millis = date.getTime(); 

    long seconds = millis/1000; 
    long sec = seconds % 60; 
    long min = (seconds/60) % 60; 
    long hrs = (seconds/(60 * 60)) % 24; 


    Log.d("time",""+hrs+" : "+min+" : "+sec); 

あなたはRefer link

+0

返す '7:4:54'.wrong時 – user8164155

+0

私は自分の答えを編集しました。今すぐチェックしてください –

+0

同じ結果が返されます7時間 – user8164155

関連する問題