2011-04-05 81 views
10

嗨 我想以簡單的日期格式顯示玩家位置和玩家持續時間。那是。 00:00:01/00:00:06。第一部分是玩家的當前位置,第二部分是持續時間。 我用SimpleDateFormat來嘗試顯示這種格式的持續時間和位置,但它顯示輸出爲05:30:00/05:30:06如何正確顯示MediaPlayer的位置/持續時間?

這裏是代碼我使用:

time1 = new SimpleDateFormat("HH:mm:ss"); 
currentTime.setText("" + time1.format(player.getCurrentPosition()); 

如何打印出的位置和時間是否正確? (它顯示不應該在那裏的小時/分鐘)。

請幫助我,Swathi Daruri。

回答

25

DateFormat適用於日期,不適用於時間間隔。因此,如果您獲得1秒的位置,則DateFormat將其解釋爲表示日曆(即1970年1月1日)開始後的日期/時間爲1秒。

你需要做這樣的事情

private String getTimeString(long millis) { 
    StringBuffer buf = new StringBuffer(); 

    int hours = (int) (millis/(1000 * 60 * 60)); 
    int minutes = (int) ((millis % (1000 * 60 * 60))/(1000 * 60)); 
    int seconds = (int) (((millis % (1000 * 60 * 60)) % (1000 * 60))/1000); 

    buf 
     .append(String.format("%02d", hours)) 
     .append(":") 
     .append(String.format("%02d", minutes)) 
     .append(":") 
     .append(String.format("%02d", seconds)); 

    return buf.toString(); 
} 

然後像做

totalTime.setText(getTimeString(duration)); 
currentTime.setText(getTimeString(position)); 
+0

感謝ü這麼多..它的工作。我想我可以通過簡單的日期格式 – user562237 2011-04-05 12:02:17

+2

你需要投入整數'int hours =(int)(millis /(1000 * 60 * 60));' – 2012-02-06 13:07:42

+1

@AhmadTK你爲什麼不編輯帖子? – sandalone 2012-12-04 18:23:20