计时器+毫秒转换为时间格式

计时器:

1、使用一个TimerTask来每一秒发送一次消息,子线程中不能直接操作ui所以使用消息机制:

    /* 秒表计时器-Task */
    class MyTimerTask extends TimerTask {
        @Override
        public void run() {
            Message msg = new Message();
            if(recordTime == 600){
                msg.what = 2;
            }else{
                msg.what = 1;
            }
            myHandler.sendMessage(msg);
        }

    };
2、Handler处理消息:

 // 本类Handler
    Handler myHandler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            switch(msg.what){
            case 1:
                recordTime++;
                tvRecordTime.setText(format(recordTime*1000));
                break;
            case 2:
                pauseRecord();
            }
        }
    };
3、开启一个计时器:

private TextView tvRecordTime;
    private int recordTime = 0;
    private Timer timer;
    private MyTimerTask timerTask;
//开始计时
        timer = new Timer(true);
        timerTask = new MyTimerTask();
        timer.scheduleAtFixedRate(timerTask, 0, 1000);
//暂停计时
        if(timerTask != null){
            timerTask.cancel();
            //timer.cancel();
        }

计时成功后,开始把计时把数字改成时间格式:

毫秒转换成时间:

Java 毫秒转换为(天:时:分:秒)方法(抄)

public static String format(long ms) {//将毫秒数换算成x天x时x分x秒x毫秒
int ss = 1000;
int mi = ss * 60;
int hh = mi * 60;
int dd = hh * 24;

   long day = ms / dd;
long hour = (ms - day * dd) / hh;
long minute = (ms - day * dd - hour * hh) / mi;
long second = (ms - day * dd - hour * hh - minute * mi) / ss;
long milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;

   String strDay = day < 10 ? "0" + day : "" + day;
String strHour = hour < 10 ? "0" + hour : "" + hour;
String strMinute = minute < 10 ? "0" + minute : "" + minute;
String strSecond = second < 10 ? "0" + second : "" + second;
String strMilliSecond = milliSecond < 10 ? "0" + milliSecond : "" + milliSecond;
strMilliSecond = milliSecond < 100 ? "0" + strMilliSecond : "" + strMilliSecond;
return strDay + " " + strHour + ":" + strMinute + ":" + strSecond + " " + strMilliSecond;
}

通过此方法可以将毫秒转换成  天:时:分:秒
也可以对此方法进行稍微的修改就可以转换成其他格式。

计时器+毫秒转换为时间格式_第1张图片

你可能感兴趣的:(android,timertask)