HH:MM:SS 格式 android 工作室 CountdownTimer
HH:MM:SS format android studio CountdownTimer
我一直在尝试格式化倒数计时器,但没有取得太大成功。计时器倒计时正确的 minutes/hours/seconds 数量作为输入,但是,在输出回用户而不是漂亮的正常倒计时计时器外观时,我得到以下不同的输出:
When attempting to countdown from 25 minutes
当我尝试从 25 分钟开始倒计时时,当我尝试从 10 分钟开始倒计时时,下面是:
10 minutes
任何 1 分钟或更短的时间似乎都能正确倒计时。
这是我必须格式化输出的代码,我还包含了它所在的 CounterClass 的代码。
private class CounterClass extends CountDownTimer {
public CounterClass(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
String hms = String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours(millisUntilFinished),
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished));
timeDisp.setText(hms);
}
}
提前致谢!
如this answer
所述
您可以通过以下方式获取小时数:
int hours = (int) ((millisUntilFinished / (1000*60*60)) % 24);
请注意,您可以通过这样做来计算任何给定的分钟数:
_tv.setText(""+String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
我一直在尝试格式化倒数计时器,但没有取得太大成功。计时器倒计时正确的 minutes/hours/seconds 数量作为输入,但是,在输出回用户而不是漂亮的正常倒计时计时器外观时,我得到以下不同的输出: When attempting to countdown from 25 minutes
当我尝试从 25 分钟开始倒计时时,当我尝试从 10 分钟开始倒计时时,下面是: 10 minutes 任何 1 分钟或更短的时间似乎都能正确倒计时。
这是我必须格式化输出的代码,我还包含了它所在的 CounterClass 的代码。
private class CounterClass extends CountDownTimer {
public CounterClass(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
String hms = String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours(millisUntilFinished),
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished));
timeDisp.setText(hms);
}
}
提前致谢!
如this answer
所述您可以通过以下方式获取小时数:
int hours = (int) ((millisUntilFinished / (1000*60*60)) % 24);
请注意,您可以通过这样做来计算任何给定的分钟数:
_tv.setText(""+String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));