概念
表示给定粒度单位的时间持续时间,并提供跨单位转换的实用方法,并在这些单元中执行定时和延时操作
作用
时间颗粒度转换
延时
应用1 延时
可读性比较差Thread.sleep(4*60*1000);
替换语句
TimeUnit.MINUTES.sleep(4); // sleeping for 4 minutes
其他用例
TimeUnit.DAYS //天
TimeUnit.HOURS //小时
TimeUnit.MINUTES //分钟
TimeUnit.SECONDS //秒
TimeUnit.MILLISECONDS //毫秒
TimeUnit.NANOSECONDS //毫微秒
TimeUnit.MICROSECONDS //微秒
总结来说在你想用Thread.sleep()方法的地方你最好使用TimeUnit.sleep()方法来代替。它不尽可以提高代码的可读性而且能更加熟悉java.util.concurrent包,因为TimeUnit在并发编程中也是一个关键API。
应用2
除了sleep的功能外,TimeUnit还提供了便捷方法用于把时间转换成不同单位
//秒变毫秒
TimeUnit.SECONDS.toMillis(44);
//1天有24个小时 1代表1天:将1天转化为小时
System.out.println( TimeUnit.DAYS.toHours( 1 ) ); //结果: 24
其他用例
public long toMillis(long d) //转化成毫秒
public long toSeconds(long d) //转化成秒
public long toMinutes(long d) //转化成分钟
public long toHours(long d) //转化成小时
public long toDays(long d) //转化天