최근 프로젝트에서는 여러 데이터 소스를 사용하여 MySQL 라이브러리에서 mongo 라이브러리로 데이터를 마이그레이션하는 것으로 나타났습니다. - 검색된 데이터와 원본 데이터의 시간 차이.
마지막으로 시어머니 이후 문제가 해결되었습니다. 기록:
스프링부트를 사용했기 때문에 두 가지 더 실용적인 방법을 보았습니다. , 여기서 사용한 것은 구성 파일 application.yml을 수정하는 것입니다. 또한 다른 방법은 온라인에서 찾을 수 있습니다.
&serverTimezone=GMT%2b8
primary: jdbc-url: jdbc:mysql://******:3306/***?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8 username: **** password: ***** secondary: jdbc-url: jdbc:mysql://*******:3306/***?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8 username: ***** password: ********
항목을 추가합니다.
&serverTimezone=GMT+8 这里使用%2b替换 + 号
#在application.yml中增加配置 spring: jackson: time-zone: GMT+8
시간을 성공적으로 수정하는 방법도 있습니다.
1 k8s 환경에서 코드에서 시간을 비교해 보세요. 새로운 Date()에서 차이는 8시간입니다
호스트 시간대가 cst 시간대인지 확인하세요
Java 코드를 사용하여 컨트롤러 시간대를 작성하고 GMT인지 확인하세요
코드는 다음과 같습니다.
Calendar calendar = Calendar.getInstance(); System.out.println("目前时间:" + calendar.getTime()); System.out.println("Calendar时区::" + calendar.getTimeZone().getID()); System.out.println("user.timezone:" + System.getProperty("user.timezone")); System.out.println("user.country:" + System.getProperty("user.country")); System.out.println("默认时区:" + TimeZone.getDefault().getID());
출력되는 시간대는 GMT로 호스트와 다르므로 운영 및 유지보수를 알 수 없으면 직접 하세요
시간대가 문제인 것 같습니다-
1. =Asia/Shanghai를 데이터베이스 링크 db
2에 추가합니다. springboot 시작 스크립트-Duser.timezone=GMT+08
3.jackson 전역 구성
spring.jackson.date-format: yyyy-MM-dd HH:mm:ss spring.jackson.time-zone: GMT+8
4.
위 내용은 springboot 데이터베이스를 쿼리할 때 시간대 차이 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!