Java 中如何设置时区
2022-11-16 22:24:04
## 设置Java 默认时区
```
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8:00"));
// TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
// 查看默认时区
System.out.println(TimeZone.getDefault());
System.out.println(new Date());
```
Spring Boot 项目可以放在调用 SpringApplication.run() 方法前面
```
@SpringBootApplication
public static void main(String[] args) {
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
SpringApplication.run(DemoApplication.class, args);
}
```
也可以在运行 jar 包的时候配置时区
```
java -jar -Duser.timezone=GMT+08 app.jar
```
## 设置 jackson 时间格式和时区
```
spring.jackson.time-zone=Asia/Shanghai
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
```
## 指定 MySQL 时区
```
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/app?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=
```