TimeUnit源码

简介:

TimeUnit中主要是一些时间单位的枚举类,这些枚举类实现了TimeUnit中定义的一些方法,其实就是进行不同时间单位之间的转化:

toNanos,toMicros,toMillis,toSeconds,toMinutes,toHours,toDays,convert,excessNanos

举例说明:

 

NANOSECONDS {
        public long toNanos(long d)   { return d; }  // 转成纳秒
        public long toMicros(long d)  { return d/(C1/C0); } // 转成微秒
        public long toMillis(long d)  { return d/(C2/C0); } // 转成毫秒
        public long toSeconds(long d) { return d/(C3/C0); } // 转成秒
        public long toMinutes(long d) { return d/(C4/C0); } // 转成分钟
        public long toHours(long d)   { return d/(C5/C0); } // 转成小时
        public long toDays(long d)    { return d/(C6/C0); } // 转成天
        public long convert(long d, TimeUnit u) { return u.toNanos(d); } // 将单位为u的时间d转成纳秒
        int excessNanos(long d, long m) { return (int)(d - (m*C2)); } // 用于超时等待(sleep、join、wait),其中m参数的单位为毫秒,若d为毫秒以下,则计算剩余需要等待时间,否则返回0,即剩余需要等待的纳秒数为0
    }
原文地址:https://www.cnblogs.com/flydoging/p/13562795.html