在 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 等工具方法,能輕鬆達到統一格式、減少錯誤。