TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段

1、主要作用

   时间颗粒度转换

   延时

2、常用的颗粒度

1. 

2.

TimeUnit.DAYS //天



3.

TimeUnit.HOURS //小时



4.

TimeUnit.MINUTES //分钟



5.

TimeUnit.SECONDS //秒



6.

TimeUnit.MILLISECONDS //毫秒



7.

TimeUnit.NANOSECONDS //毫微秒



8.

TimeUnit.MICROSECONDS //微秒



9.



3、时间颗粒度转换

1. 

2.

public long toMillis(long d) //转化成毫秒


3.


public long toSeconds(long d) //转化成秒



4.


public long toMinutes(long d) //转化成分钟



5.


public long toHours(long d) //转化成小时



6.


public long toDays(long d) //转化天



7.



实例:

1. 

2.


package com.app;


3.




4.


import java.util.concurrent.TimeUnit;


5.




6.


public class Test {


7.




8.

public static void main(String[] args) {


9.

//1天有24个小时 1代表1天:将1天转化为小时



10.

System.out.println( TimeUnit.DAYS.toHours( 1 ) );


11.




12.

//结果: 24



13.




14.




15.

//1小时有3600秒



16.

System.out.println( TimeUnit.HOURS.toSeconds( 1 ));


17.




18.

//结果3600



19.




20.




21.

//把3天转化成小时



22.

System.out.println( TimeUnit.HOURS.convert( 3 , TimeUnit.DAYS ) );


23.

//结果是:72



24.




25.

}


26.

}


27.



4、延时

  (1)一般的写法

1. 

2.


package com.app;


3.




4.


public class Test2 {


5.




6.

public static void main(String[] args) {


7.




8.

new Thread( new Runnable() {


9.




10.

@Override


11.

public void run() {


12.

try {


13.

Thread.sleep( 5 * 1000 );


14.

System.out.println( "延时完成了");


15.

} catch (InterruptedException e) {


16.

e.printStackTrace();


17.

}


18.

}


19.

}).start(); ;


20.

}


21.




22.

}


23.



   (2)TimeUnit 写法

1. 

2.


package com.app;


3.




4.


import java.util.concurrent.TimeUnit;


5.




6.


public class Test2 {


7.




8.

public static void main(String[] args) {


9.




10.

new Thread( new Runnable() {


11.




12.

@Override


13.

public void run() {


14.

try {


15.

TimeUnit.SECONDS.sleep( 5 );


16.

System.out.println( "延时5秒,完成了");


17.

} catch (InterruptedException e) {


18.

e.printStackTrace();


19.

}


20.

}


21.

}).start(); ;


22.

}


23.




24.

}


25.



5、常用时间段

1. 

2.

/**



3.

* 无固定期限


4.


*/


5.

NONE(0, "无固定期限")


6.




7.

/**



8.

* 1秒钟


9.


*/


10.

,ONE_SEC(1, "1秒钟")


11.




12.

/**



13.

* 5秒钟


14.


*/


15.

,FIVE_SEC(5, "5秒钟")


16.




17.

/**



18.

* 10秒钟


19.


*/


20.

,TEN_SEC(10, "10秒钟")


21.




22.

/**



23.

* 30秒钟


24.


*/


25.

,HALF_A_MIN(30, "30秒钟")


26.




27.

/**



28.

* 1分钟


29.


*/


30.

,ONE_MIN(60, "1分钟")


31.




32.

/**



33.

* 5分钟


34.


*/


35.

,FIVE_MIN(5 * 60, "5分钟")


36.




37.

/**



38.

* 10分钟


39.


*/


40.

,TEN_MIN(10 * 60, "10分钟")


41.




42.

/**



43.

* 20分钟


44.


*/


45.

,TWENTY_MIN(20 * 60, "20分钟")


46.




47.

/**



48.

* 30分钟


49.


*/


50.

,HALF_AN_HOUR(30 * 60, "30分钟")


51.




52.

/**



53.

* 1小时


54.


*/


55.

,ONE_HOUR(60 * 60, "1小时")


56.




57.

/**



58.

* 1天


59.


*/


60.

,ONE_DAY(24 * 60 * 60, "1天")


61.




62.

/**



63.

* 1个月


64.


*/


65.

,ONE_MON(30 * 24 * 60 * 60, "1个月")


66.




67.

/**



68.

* 1年


69.


*/


70.

,ONE_YEAR(365 * 24 * 60 * 60, "1年")


71.