java.sql.Timestamp의 저장소는 시간대의 영향을 받나요?
JDBC에서 java.sql에 대한 setTimestamp() 메서드의 동작입니다. 타임스탬프는 드라이버에 따라 다를 수 있습니다. 구현.
드라이버 동작:
대부분의 드라이버는 setTimestamp(int 매개변수 인덱스, 타임스탬프 x, 달력 cal)에 대한 javadoc에 설명된 규칙을 준수합니다. Calendar 객체가 제공되지 않으면 드라이버는 일반적으로 애플리케이션을 실행하는 가상 머신의 시간대를 사용합니다.
데이터베이스의 타임스탬프 저장소:
setTimestamp( int 매개변수 인덱스, 타임스탬프 x) 달력을 지정하지 않은 경우 드라이버는 타임스탬프를 데이터베이스에 저장하기 전에 VM의 시간대로 변환합니다. 데이터베이스 열에 시간대 정보가 부족한 경우 이 변환으로 인해 시간대 데이터가 손실될 수 있습니다.
예:
GMT 2의 현지 시간대와 "2012-12-25 10:00:00 UTC"의 UTC 타임스탬프입니다. 데이터베이스에 저장되면 타임스탬프는 "2012-12-25 12:00:00"(GMT 2)으로 나타납니다. GMT 0의 애플리케이션에 의해 검색된 경우 타임스탬프는 "2012-12-25 12:00:00 UTC"로 해석됩니다.
특정 시간대에 타임스탬프 저장:
특정 시간대의 타임스탬프를 저장하려면 setTimestamp(int parameterIndex, 타임스탬프 x, 캘린더 cal)를 원하는 캘린더 인스턴스(예: GMT의 경우 Calendar.getInstance(TimeZone.getTimeZone("GMT")))로 바꿉니다.
타임스탬프 검색:
마찬가지로 타임스탬프를 검색할 때는 저장할 때와 동일한 시간대를 사용해야 합니다.
JDBC 4.2에서 java.time.LocalDateTime 사용:
JDBC 4.2 호환 드라이버에서는 java.time.LocalDateTime(및 java.time. get/set/updateObject 메소드를 통해 TIMESTAMP 및 TIME 유형의 LocalTime). 이 클래스는 시간대가 없는 시간을 나타냅니다.
위 내용은 Java의 `java.sql.Timestamp` 저장소는 시간대에 따라 달라지나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!