2012-10-11 3 views
1

AFAIK, java 날짜 유형은 시간대와 관계가 없으므로 특정 시간을 긴 입력 값으로 나타냅니다. 나는 정말 이상한 것을 발견했다.Java 날짜 값이 삽입 후 변경됨, 쿼리 선택

이것은 삽입하려고 시도한 원래 값입니다.

(http-0.0.0.0-9080-4) 1352955600000 < - 긴 정수.

(http-0.0.0.0-9080-4) 목 11 월 15 일 00:00:00 EST 2012 < - 사용자 친화적 형식.

오라클 11g 데이터베이스에 삽입하면 값이 변경되었습니다!

(HTTP-0.0.0.0-9080-4) 1352952000000

(HTTP가-0.0.0.0-9080-4) 수요일 11월 14일 동부 표준시 23시 00분 0초 2012

방법 이것이 일어날 수 있니? 더 이상한 일은 Jboss와 같은 특정 환경에서만 발생합니다. 현재 아래 환경에서 사용하고 있습니다.

  • 자바 1.6
  • iBATIS는 2.34의 jboss-5.1 (서버)
  • 바람둥이 6.0 (로컬)
  • 오라클은

는 11g이 나에게 단서를 줄 수있는 사람이

  • 있는가 또는 도움이되는 링크? 정말 나를 괴롭 히고 !!


    여기에 더 많은 정보가 추가되었습니다. 나는 Java에서 Date 유형을 사용하고 Oracle에서는 TIMESTAMP WITH TIMEZONE을 사용합니다.

    날짜에 값 ("11/15/2012", MM/dd/yyyy, 미국/동부)이 저장되었습니다.

    그리고

    12/11/15 00

    것처럼 보여 iBatis.And를 사용하여 Oracle이 값을 보낸 : 00

    잘못된이다 : -04 00.000000000 : 00. DST가 11 월에 끝났기 때문에 시간대는 -05 : 00이어야합니다.

    그리고 더, 나는 목 11월 15일 동부 표준시 00시 00분 0초으로 기대가 수요일 11월 14일 동부 표준시 23시 00분 0초 2012을 반환 내 자바 코드에서이 값

    을 얻을 때 2012.

    문제가 해결되었습니다.

    감사합니다. 이유를 찾았습니다. ojdbc 드라이버의 알려진 버그입니다. 이 부분은 link을 참조하십시오.

  • +0

    당신의 DB 및 응용 프로그램 (자바) 사이의 시간대 불일치 (http://stackoverflow.com/ [Java 및 봄 오라클 데이터베이스에 삽입 UTC 날짜]를 참조하십시오 질문/12563553/insert-utc-date-in-oracle-database-with-java and spring) –

    +0

    데이터베이스 시간대 란 무엇입니까? – Annjawn

    +0

    @VincentMalgrat 고마워! 그러나 시간대는 "프리젠 테이션"에 대해서만 중요합니까? 표준 시간대가 DB에 대한 절대 값을 어떻게 수정합니까? – chofire

    답변