[英]android eclipse: Countdown timer in hours, minutes and seconds
I have a countdown timer and i want to print in hours, minutes and seconds. 我有一个倒数计时器,我想以小时,分钟和秒为单位进行打印。 I have the following code but the output I'm getting is not properly converted in minutes I don't understand where I am going wrong.
我有以下代码,但是我得到的输出在几分钟内没有正确转换,我不明白我要去哪里。
enter code here
CountDownTimer countDownTimer = new CountDownTimer(millisset3, 1000)
{
TextView tv = (TextView) context.findViewById(R.id.textView2);
public void onFinish() {
tv.setText("Time finished!"); }
public void onTick(long millisUntilFinished) {
tv.setText("Time left for Isha: " +String.format(" %d hours, %d min, %d sec",
TimeUnit.MILLISECONDS.toHours(millisUntilFinished),
TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished) -
TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours( millisUntilFinished)),
TimeUnit.MILLISECONDS.toSeconds( millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished))));
}
}.start();
}
try this 尝试这个
private long startTime = 0L;
private Handler myHandler = new Handler();
long timeInMillies = 0L;
long timeSwap = 0L;
long finalTime = 0L;
//on button click(timer start)
startTime = SystemClock.uptimeMillis();
myHandler.postDelayed(updateTimerMethod, 0);
//=====
//on button click (timer stop)
timeSwap += timeInMillies;
myHandler.removeCallbacks(updateTimerMethod);
//==================
private Runnable updateTimerMethod = new Runnable() {
public void run() {
timeInMillies = SystemClock.uptimeMillis() - startTime;
finalTime = timeSwap + timeInMillies;
int seconds = (int) (finalTime / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
int milliseconds = (int) (finalTime % 1000);
Log.e("" + minutes + ":"
+ String.format("%02d", seconds) + ":"
+ String.format("%03d", milliseconds));
myHandler.postDelayed(this, 0);
}
};
You can pass the milliseconds to this function and you will get a string in the format. 您可以将毫秒传递给此函数,您将获得格式的字符串。
public static String getFormat(long millis)
{
DateFormat outFormat = new SimpleDateFormat("hh:mm:ss");
outFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date d = new Date(millis);
String result = outFormat.format(d);
return result;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.