2014-04-07 1 views
6

자바 프로그램이 현재 로컬 시간대로 이벤트를 기록해야합니다. 문제는 사용자가 시간대를 변경할 수 있지만 시스템 시간대가 변경된 경우에도 Java 프로그램이 "이전"시간대로 계속 실행된다는 것입니다.
자바 시간대가 런타임에 변경됨

내가 자바 VM은 기본적으로 자바 프로그램이 실행되는 시간대를 설정하는 것으로 의심되는 (Timezone.setDefault()에 대한 javadoc에서는 "는 VM 처음 시작했을 때 원래의 값에 디폴트가 다시."라고)

사실입니까? Java는 기본 시스템 시간대를 기본 시스템 시간대로 업데이트 할 수 없으므로 VM을 다시 시작해야합니까?

+0

자바 7에서'setDefault'는 zone 인수를 취하고 null을 전달한 경우에만 원본으로 재설정됩니다 : "zone이 null이면 VM을 처음 시작했을 때의 원래 값으로 재설정하십시오." [API here] (http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html#setDefault (java.util.TimeZone)) – azurefrog

답변

1

왜 시간대를 선언 된 변수로 설정하지 않습니까? 기본 시간대로 초기화 한 다음 사용자가 변경하면 변수에 저장합니다. 로그에서 변수를 호출하십시오.

관련 문제