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.
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.
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.