控制springboot服务的时区为东八区
@SpringBootApplication
public class Application {
public static void main(String[] args) {
// 设置时区为上海时区,即东八区
TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.SHORT_IDS.get("CTT")));
SpringApplication.run(Application.class, args);
}
}
以下是测试例子
springboot 启动时候设置时区,如下代码所示
@SpringBootApplication
public class EwPbServerApplication {
public static void main(String[] args) {
TimeZone timeZone = TimeZone.getTimeZone("UTC");
TimeZone.setDefault(timeZone);
SpringApplication.run(EwPbServerApplication.class, args);
}
}
测试请求接口获取时间
@GetMapping("test")
@ApiOperation(value = "测试时间", httpMethod = "GET")
public void test() {
//当前时间为 2022-09-06 17:46
//启动类设置时区后,获取当前时间
Date date = new Date();
DateTime date1 = DateUtil.date();
LocalDateTime localDateTime = LocalDateTime.now();
//设置时区为-东八区
LocalDateTime.now(ZoneId.of("Asia/Shanghai"))
log.info("date=={}", date);
log.info("date1=={}", date1);
log.info("localDateTime=={}", localDateTime);
log.info("now=={}", now);
// 2022-09-06 09:47:01.385 xxxx : date==Tue Sep 06 09:47:01 UTC 2022
// 2022-09-06 09:47:01.385 xxxx : date1==2022-09-06 09:47:01
// 2022-09-06 09:47:01.386 xxxx : localDateTime==2022-09-06T09:47:01.381
// 2022-09-06 09:47:01.386 xxxx : now==2022-09-06T17:47:01.385
}
由测试结果得知,springboot 启动时设置时区之后全局生效,但是优先级小于手动设置