在设置时间长度时,一般使用long类型进行设置,但是在代码中是没法直接定义时间单位的,我定义了一个long类型的变量,它单位是毫秒、微妙、秒还是小时、天、周、月,这些是没法清楚定义的。
Java提供了Duration这个类解决时间单位的问题,它可以通过SpringBoot的注解指定时间单位。
定义Duration变量
先定义一个实体类,在其中定义一个时间长度成员变量。
import java.time.Duration;
import java.time.temporal.ChronoUnit;
@Data
public class User {
private int id;
private String username;
private String password;
@DurationUnit(ChronoUnit.DAYS)
private Duration period;
}
@DurationUnit注解接受一个参数设置Duration的时间单位,通过ChronoUnit类提供的常量设置时间单位。
ChronoUnit中预置了很多时间单位,根据需要选择即可。
使用Duration变量
Duration提供了很多方法,可以方便的将时间长度转为你需要的计量单位。
如下图所示,Duration类提供了将时间转为秒、纳秒、微秒、天、小时的方法,以及加减运算的方法,非常方便。