在 Spring Boot 项目里设置国区时区(也就是中国标准时间,即 Asia/Shanghai),可通过以下几种方式实现:
方式一:在application.properties
或application.yml
里设置
application.properties
properties
spring.jackson.time-zone=Asia/Shanghai
application.yml
yaml
spring:jackson:time-zone: Asia/Shanghai
这里,借助 Spring Jackson 的配置来设定时区,此配置会影响 JSON 序列化和反序列化时的时间处理。
方式二:在 Java 代码里设置默认时区
在 Spring Boot 应用的启动类或者配置类里添加如下代码:
java
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.TimeZone;@SpringBootApplication
public class YourApplication implements CommandLineRunner {public static void main(String[] args) {SpringApplication.run(YourApplication.class, args);}@Overridepublic void run(String... args) throws Exception {TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));}
}
上述代码把 Java 虚拟机的默认时区设置成了Asia/Shanghai
,这样整个应用里涉及时间的操作都会采用这个时区。
方式三:在数据库连接配置里设置时区
若你使用的是数据库,在数据库连接的 URL 里设置时区。以 MySQL 为例:
properties
spring.datasource.url=jdbc:mysql://localhost:3306/your_database?serverTimezone=Asia/Shanghai
这样做能保证数据库与应用程序使用相同的时区,防止出现时间不一致的问题。
你可以依据项目的具体需求,选择合适的方式来设置国区时区。
注意 一定不要在注解上配置
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8" ) private Date updateTime; 这种情况会导致 多个微服务转换下 时间会算错 多加八小时