Java 데이터베이스 연결에서 MySQL 시간대 불일치 해결
특정 시나리오에서는 MySQL 데이터베이스 시간대와 Java 서버 시간대가 불일치할 수 있습니다. 날짜/시간 값으로 작업할 때. 이 문서에서는 이 문제를 다루고 MySQL JDBC 커넥터를 사용하는 포괄적인 솔루션을 제공합니다.
이 문제는 Tomcat이 "GMT"에서 작동하는 동안 "GMT 8" 시간대를 사용하는 MySQL의 기본 동작에서 발생합니다. 이러한 불일치로 인해 잘못된 날짜/시간 값이 데이터베이스에 저장되고 Java에서 검색됩니다.
이를 수정하려면 다음 매개변수를 포함하도록 연결 URL을 수정해야 합니다.
그러나 이 접근 방식은 useLegacyDatetimeCode=false를 사용하세요. 이 매개변수는 레거시 날짜/시간 처리 코드를 비활성화하고 MySQL JDBC 커넥터에서 새로운 타임스탬프 처리 메커니즘을 활성화합니다.
useLegacyDatetimeCode=false를 설정하면 Java 코드는 타임스탬프를 설정하는 동안 Calendar 개체를 지정할 수 있습니다. . 이 Calendar 객체는 null이어야 합니다. 이 객체가 있으면 날짜/시간 값이 웹서버 시간대에 따라 형식화되어 혼란을 야기할 수 있기 때문입니다.
날짜/시간 값을 올바르게 검색하려면 getTimestamp(int) Calendar 객체를 지정하지 않고 메서드를 사용해야 합니다. 이렇게 하면 데이터베이스 시간대가 형식 지정에만 사용됩니다.
이 접근 방식에서는 웹서버 시간대가 관련이 없다는 점에 유의하는 것이 중요합니다. 또한 MySQL이 모호한 서버 시간대(예: EST)에 대해 불평하는 경우 serverTimezone=
이 솔루션은 Java 애플리케이션에서 MySQL 데이터베이스와 인터페이스할 때 날짜/시간 처리의 정확성이 향상되었습니다.
위 내용은 데이터베이스 연결에서 MySQL과 Java 시간대 충돌을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!