简介
TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段。
作用
- 时间颗粒度转换
- 延时
常用的颗粒度
TimeUnit.DAYS //天
TimeUnit.HOURS //小时
TimeUnit.MINUTES //分钟
TimeUnit.SECONDS //秒
TimeUnit.MILLISECONDS //毫秒
TimeUnit.NANOSECONDS //毫微秒
TimeUnit.MICROSECONDS //微秒
时间颗粒度转换
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) //转化天
示列
/**
* @Description: 转换示列
* @Author: zhuyang
* @Date: 2022/1/8 14:54
* @return: void
**/
public void convert(){
//将1天转换为小时
System.out.println("将1天转换为小时: "+TimeUnit.DAYS.toHours(1));
//答案:24
//将1小时转换为秒
System.out.println("将1小时转换为秒: "+TimeUnit.HOURS.toSeconds(1));
//答案: 3600
//将3天转换为小时
System.out.println("将3天转换为小时: "+TimeUnit.HOURS.convert(3,TimeUnit.DAYS));
//答案: 72
}
延时
/**
* @Description: 睡眠方式
* @Author: zhuyang
* @Date: 2022/1/8 15:04
* @return: void
**/
public void sleep(){
new Thread(new Runnable() {
@Override
public void run() {
long currentTimeMillis = System.currentTimeMillis();
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("睡眠了几秒钟:"+TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()-currentTimeMillis));
}
}).start();
}
常用时间段
/**
* 无固定期限
*/
NONE(0, "无固定期限")
/**
* 1秒钟
*/
,ONE_SEC(1, "1秒钟")
/**
* 5秒钟
*/
,FIVE_SEC(5, "5秒钟")
/**
* 10秒钟
*/
,TEN_SEC(10, "10秒钟")
/**
* 30秒钟
*/
,HALF_A_MIN(30, "30秒钟")
/**
* 1分钟
*/
,ONE_MIN(60, "1分钟")
/**
* 5分钟
*/
,FIVE_MIN(5 * 60, "5分钟")
/**
* 10分钟
*/
,TEN_MIN(10 * 60, "10分钟")
/**
* 20分钟
*/
,TWENTY_MIN(20 * 60, "20分钟")
/**
* 30分钟
*/
,HALF_AN_HOUR(30 * 60, "30分钟")
/**
* 1小时
*/
,ONE_HOUR(60 * 60, "1小时")
/**
* 1天
*/
,ONE_DAY(24 * 60 * 60, "1天")
/**
* 1个月
*/
,ONE_MON(30 * 24 * 60 * 60, "1个月")
/**
* 1年
*/
,ONE_YEAR(365 * 24 * 60 * 60, "1年")