2017-12-19 3 views
0

現在の位置をミリ秒単位で返すgetcurrentposnという関数を持つ音楽プレーヤーがあります。この形式でTextViewに結果を表示したいとします。mm:ssデジタル形式の継続時間を取得

私はgetAsTime関数を作成しました。これは私のアプリの時刻をデジタル形式、つまりmm:ssに返します。

long minutes = TimeUnit.MILLISECONDS.toMinutes(millis); 
    long seconds = minutes * 60; 
    if(millis!=0) { 
     long totalSeconds = TimeUnit.MILLISECONDS.toSeconds(millis); 
     if(seconds!=0) 
     seconds = totalSeconds/seconds; 
     else seconds=totalSeconds; 
    } 


    if(minutes<10 && seconds <10) 
     return "0"+minutes + ":" +"0"+ seconds; 


    if(minutes<10 && seconds>=10) 
     return "0"+minutes + ":" + seconds; 

    if(minutes>=10 && seconds<10) 
     return minutes + ":" +"0"+ seconds; 

    return minutes+":"+seconds; 

} 

しかし、それはあることの問題点は、正常に動作していないよう:

これは私が試したものです。

これを行うための関数はありませんか?どうすれば正しい方法でそれを達成できますか?

例:01:00 02:09

+0

分と秒を別々に扱う必要があります。また、実際の問題は何ですか? – ACV

+0

手動で時間を取得したいですか?どうして? – Ibrahim

+0

@ACVいくつかのミリ秒の時間表示はほぼ同じですが、milisecondsは1000ミリ秒で変化します。 –

答えて

2

まず秒にミリ秒に変換する:

int t = millis/1000; 

次に、あなたがそれを望むようにフォーマットされた文字列を返す次に、分と秒

int minutes = t/60; //since both are ints, you get an int 
int seconds = t % 60; 

にそれらを変換します追加されたパディング付き

return String.format("%02d:%02d", minutes, seconds); 
関連する問題