Java에서 날짜와 시간을 특정 시간대로 변환
이 Java 프로그램은 현재 시스템 날짜와 시간을 특정 시간대로 변환하는 것을 목표로 합니다. . 그러나 제공된 코드는 인도에서 중부 표준시(CST)로 변환할 때 시간 불일치를 표시하는 잘못된 결과를 생성합니다.
시간대 변환 이해
시간대는 지역입니다. 동일한 표준 시간을 사용합니다. 다른 시간대의 등가 시간을 계산할 때는 시간대 오프셋과 일광 절약 시간(DST) 설정의 차이를 조정해야 합니다.
코드 분석
코드는 SimpleDateFormat 및 Calendar 클래스를 사용하여 날짜 및 시간 값을 조작합니다. 다음 단계를 사용하여 현재 시스템 시간을 CST로 변환하려고 시도합니다.
불일치 해결
코드가 시간대 오프셋 및 DST 설정에 맞게 제대로 조정되지 않아 불일치가 발생합니다. 제공된 코드는 원시 시간대 오프셋만 조정하지만 DST는 고려하지 않습니다.
해결책
이 문제를 해결하려면 코드가 원시 시간대 오프셋과 두 가지 모두에 대해 조정해야 합니다. 오프셋 및 DST 절약. 다음 수정된 코드는 조정 내용을 보여줍니다.
<code class="java">Calendar calendar = Calendar.getInstance(); TimeZone fromTimeZone = calendar.getTimeZone(); TimeZone toTimeZone = TimeZone.getTimeZone("CST"); // Adjust for raw time zone offset calendar.add(Calendar.MILLISECOND, fromTimeZone.getRawOffset() * -1); // Adjust for daylight saving time if (fromTimeZone.inDaylightTime(calendar.getTime())) { calendar.add(Calendar.MILLISECOND, calendar.getTimeZone().getDSTSavings() * -1); } // Adjust to target time zone calendar.add(Calendar.MILLISECOND, toTimeZone.getRawOffset()); if (toTimeZone.inDaylightTime(calendar.getTime())) { calendar.add(Calendar.MILLISECOND, toTimeZone.getDSTSavings()); } System.out.println(calendar.getTime());</code>
이러한 조정을 추가하면 코드는 DST 조정을 포함하여 날짜와 시간을 지정된 시간대로 정확하게 변환합니다.
위 내용은 Java 코드가 날짜와 시간을 CST로 잘못 변환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!