簡介
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年")