Java를 사용하여 달력 시간대를 처리하는 방법
질문:
다음의 타임스탬프가 있습니다. 모든 TimeZone에서 발생할 수 있는 애플리케이션. 그러나 데이터는 항상 GMT에 있다고 가정하는 WebService로 전송되어야 합니다. 사용자가 알지 못하는 사이에 사용자의 입력 시간을 현지 TimeZone에서 GMT로 변환해야 합니다.
답변:
Java의 TimeZone 처리는 혼란스러울 수 있습니다. 타임스탬프는 일반적으로 GMT로 저장되지만 Calendar 클래스는 기본적으로 시스템의 현재 TimeZone을 사용합니다. 이 문제를 해결하려면 다음을 고려하세요.
import java.util.Calendar; import java.util.TimeZone; public class ConvertTimeZone { public static void main(String[] args) { // Example input time (EST) Calendar input = Calendar.getInstance(TimeZone.getTimeZone("EST")); input.set(2008, Calendar.MAY, 1, 18, 12, 0); // Create a Calendar in GMT Calendar gmt = convertToGmt(input); // Output the converted time (GMT) System.out.println(gmt.getTime()); // 2008-05-01 11:12:00 GMT } public static Calendar convertToGmt(Calendar cal) { Date date = cal.getTime(); TimeZone tz = cal.getTimeZone(); long msFromEpochGmt = date.getTime(); // Convert to milliseconds since epoch in GMT int offsetFromUTC = tz.getOffset(msFromEpochGmt); // Create a new Calendar in GMT and adjust for the offset Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); gmtCal.setTime(date); gmtCal.add(Calendar.MILLISECOND, offsetFromUTC); return gmtCal; } }
이 코드는 다음 단계를 수행합니다.
이 접근 방식을 활용하면 사용자의 입력 시간을 모든 TimeZone에서 GMT로 정확하게 변환할 수 있습니다. WebService와의 데이터 호환성을 보장합니다.
위 내용은 Java에서 모든 TimeZone의 타임스탬프를 GMT로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!