2013-05-21 3 views
1

, 나는, 전 세계적으로 지속 '우리가 오래 지속되면, 모든 시간대 의존성이 제거 될 것으로 보인다 그리고 우리는 계속됩니다, 디스플레이, 쿼리에 대한 최신 정보를 유지하는 가장 좋은 방법은 무엇인가 알고 등의 보고서를 원하는 Date 객체가 자동으로 긴 시간대를 현재 시간대로 변환하기 때문에 로컬로 표시하는 원리.날짜 정보를 유지하는 방법은 무엇입니까? 자바에서

그러나 Date 객체로 지속의 장점은 무엇인가?
정보 소유자의 시간대 이외의 정보를 잃어 버리지 않았습니까?
DLS가 고려할 때 잘못된 정보를 얻을 수 있습니까?
UTC date와 long으로 지속되는 차이점은 그냥 읽을 수있는 db 정보입니까?

+0

사용중인 언어/프레임 워크가 명확하지 않습니다. 그게 닷넷, 자바, 자바 야? – Artemix

+0

제 질문은 언어에 의존하지 않습니다. 자바 –

+2

당신을 위해 재미있을 수 있음하지만 여전히, 내가 편집 : http://stackoverflow.com/questions/13303676/is-it-java-best-practice-to-store-dates-as-longs-in-your- 데이터베이스 – Kai

답변

1

데이터베이스에 따라 TIMESTAMP WITH TIMEZONE을 사용하거나 UTC 시간으로 변환하고 long으로 저장하십시오.

첫 번째가 제대로 처리하기 위해 DB에 의존합니다 (DB하지만 것이다 DB 드라이버? 당신은 당신의 설정이 테스트해야합니다). 두 번째 것은 수동 프로세스로 만들어 주지만 결국에는 올바른 결과를 얻을 수 있지만 모든 것에 대해 신경을 써야하기 때문에 더 많은 문제가 발생할 것입니다.

내부 자바는 수동, 그래서 당신은 쉽게 자신의 서로 다른 시간대에 날짜를 표시 할 수 있습니다 거기에 당신이 TIMEZONE 등을 지정할 수 있기 때문에 Date 이상 Calendar을 사용할 수 있습니다.

+0

은 UTC로 이미 긴 값이 아닙니다. 오래 변환하기 전에 그것을 변환해야합니까? –

+0

일반적으로 긴 값은 시간대 불가지론 : 로컬 시간에서 그것을 얻을 경우는 UTC 1/1/1970부터 시작 UTC 시간에서 그것을 얻을 경우는, 지역 1/1/1970에서 밀리 초 수를 포함합니다. – Artemix

+0

@ MustafaGenç 예, 아니오. '날짜'에 삽입하는 방법에 따라 다릅니다. 'Date' 클래스는'local' (서버상의 e.G.) 시간대만을 사용합니다. 그러나 이는 또한 일광 절약 시간제를 사용한다는 것을 의미합니다. (예를 들어, 독일에서 10 월 마지막 월요일 인 02.30은 02.00에서 03.00으로 건너 뜁니다.) 그래서'Date'를 사용하고 싶다면 현지 시간대를 UTC로 설정하십시오. –

관련 문제