首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 倒數計時器時間格式化:將毫秒轉為「分:秒」雙位數顯示

     編輯:程式設計綜合問答

問題背景

在 Android 開發中,使用 CountDownTimer 實現倒數計時時,常需將剩餘毫秒數轉換為「MM:SS」格式顯示於 TextView。原始碼直接用整數除法取得分、秒,導致個位數缺少前導零(如 1:5),而非預期的 01:05。

錯誤示範

Integer timeCount = (int) (millisUntilFinished / 1000);
int min = timeCount / 60;
int sec = timeCount % 60;
textView.setText(min + ":" + sec); // 輸出 "1:5"

正確解法:使用 String.format 格式化

利用 String.format 的格式化佔位符 %02d,可自動補齊兩位數,不足前補零。

String time = String.format("%02d:%02d", min, sec);
textView.setText(time); // 輸出 "01:05"

若需包含時分秒,可擴展為 %02d:%02d:%02d。

完整範例

new CountDownTimer(60000, 1000) {
    @Override
    public void onTick(long millisUntilFinished) {
        int totalSec = (int) (millisUntilFinished / 1000);
        int min = totalSec / 60;
        int sec = totalSec % 60;
        String formatted = String.format("%02d:%02d", min, sec);
        textView.setText(formatted);
    }
    @Override
    public void onFinish() {
        textView.setText("00:00");
    }
}.start();

小結

避免手動拼接字串,善用 String.format 或 DateUtils.formatElapsedTime 等工具方法,能輕鬆達到統一格式、減少錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved