> Java > java지도 시간 > Java의 `java.sql.Timestamp` 저장소는 시간대에 따라 달라지나요?

Java의 `java.sql.Timestamp` 저장소는 시간대에 따라 달라지나요?

Linda Hamilton
풀어 주다: 2024-12-13 13:01:10
원래의
848명이 탐색했습니다.

Does Java's `java.sql.Timestamp` Storage Depend on the Time Zone?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿