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

计时器:

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;
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beluga_白鲸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值