将毫秒转成时:分:秒

首先,需要知道是如何求时分秒的:

设t=3600000毫秒,已知1秒=1000毫秒,那么转时分秒格式时,时、分、秒对应的数字分别是多少?
解:
求秒:因为1分钟=60秒,且1秒=1000毫秒
     所以(t % (60*1000) ) / 1000的结果就是对应的秒
求分:因为1分钟=60秒,1小时=60分钟,且1秒=1000毫秒
     所以(t % (60*60*1000)) / (60*1000)的结果就是对应的分
求时:同理(t / (60*60*1000))的结果就是对应的时

t毫秒对应的时分秒是:
int hours = t / 3600000;
int minutes = (t % 3600000) / 60000;
int seconds = (t % 60000 ) / 1000;

要求: 
若时间不足一分钟,格式为:59秒 
若时间大于等于一分钟,但不足一小时,格式为:59:59 、01:00 
若时间大于等一小时,格式为:01:00:00、120:03:12 
代码如下:

/**
 * 将毫秒格式化成 天:小时:分:秒
 * @author Peter(张春玲)
 *
 */
public class FormatDuration {   

    private static String getString(int t){
        String m="";
        if(t>0){
            if(t<10){
                m="0"+t;
            }else{
                m=t+"";
            }
        }else{
            m="00";
        }
        return m;
    }

    /**
     * 
     * @param t 毫秒
     * @return
     * @author Peter(张春玲)
     */
    public static String format(int t){
        if(t<60000){
            return (t % 60000 )/1000+"秒";
        }else if((t>=60000)&&(t<3600000)){
            return getString((t % 3600000)/60000)+":"+getString((t % 60000 )/1000);
        }else {
            return getString(t / 3600000)+":"+getString((t % 3600000)/60000)+":"+getString((t % 60000 )/1000);
        }
    }

   /* public static void main(String[] args) {//测试      
        System.out.println(FormatDuration.format(3600000));
    }*/
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值