TimeUnit 时间颗粒度和延时的使用 (demo)


1. TimeUnit介绍

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

2. TimeUnit作用
时间颗粒度转换
线程延时

3. 常用的颗粒度
TimeUnit.DAYS          //天

TimeUnit.HOURS         //小时

TimeUnit.MINUTES       //分钟

TimeUnit.SECONDS       //秒

TimeUnit.MILLISECONDS  //毫秒

4. 时间颗粒度转换

public long toDays(long d)     //转化成天
public long toHours(long d)    //转化成小时
public long toMinutes(long d)  //转化成分钟
public long toSeconds(long d)  //转化成秒
public long toMillis(long d)    //转化成毫秒

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import java.util.concurrent.TimeUnit;


@Slf4j
public class TestTimeUnit {


    @Test
    public void toTime(){
        long toHours = TimeUnit.DAYS.toHours(1);
        log.info("1天转化为: {}小时", toHours);

        long toMinutes = TimeUnit.HOURS.toMinutes(1);
        log.info("1小时转化为: {}分钟", toMinutes);

        long toSeconds = TimeUnit.MINUTES.toSeconds(1);
        log.info("1分钟转化为: {}秒", toSeconds);

        long toMillis = TimeUnit.SECONDS.toMillis(1);
        log.info("1秒钟转化为: {}毫秒", toMillis);
    }
}

11:12:04.893 [main] INFO com.ruoyi.ruoyiwx.websocket.TestTimeUnit - 1天转化为: 24小时
11:12:04.906 [main] INFO com.ruoyi.ruoyiwx.websocket.TestTimeUnit - 1小时转化为: 60分钟
11:12:04.906 [main] INFO com.ruoyi.ruoyiwx.websocket.TestTimeUnit - 1分钟转化为: 60秒
11:12:04.906 [main] INFO com.ruoyi.ruoyiwx.websocket.TestTimeUnit - 1秒钟转化为: 1000毫秒

5. 线程延时sleep

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import java.util.concurrent.TimeUnit;


@Slf4j
public class TestTimeUnit {


    @Test
    public void toSleep(){
        try {
            // TODO

            log.info("执行toSleep");

            TimeUnit.SECONDS.sleep(5);

            log.info("延时5秒,完成了");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

11:14:22.037 [main] INFO com.ruoyi.ruoyiwx.websocket.TestTimeUnit - 执行toSleep
11:14:27.062 [main] INFO com.ruoyi.ruoyiwx.websocket.TestTimeUnit - 延时5秒,完成了

你可能感兴趣的:(date,java)