>  기사  >  Java  >  Java 타임스탬프를 다른 시간대로 변환하는 방법은 무엇입니까?

Java 타임스탬프를 다른 시간대로 변환하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-19 10:52:02205검색

How to Convert Java Timestamps to Different Time Zones?

Java 타임스탬프를 다른 시간대로 변환

Java에서 타임스탬프는 기본적으로 처음에 그리니치 표준시(GMT)입니다. 그러나 다양한 시간대의 사용자 입력을 처리할 때는 타임스탬프를 사용자의 특정 시간대로 변환해야 합니다.

이 시나리오를 고려해보세요. 동부 표준시(EST)의 사용자는 "5/1"의 타임스탬프를 제공합니다. /2008 오후 6시 12분(EST)'. 웹 서비스는 "2008년 5월 1일 오후 6시 12분(GMT)"인 GMT의 타임스탬프를 예상합니다.

다른 시간대에 걸쳐 타임스탬프를 정확하게 변환하려면 사용자 정의 변환기가 필요합니다. ConvertToGmt()에 대한 코드는 다음과 같습니다.

public static Calendar convertToGmt(Calendar cal) {

    Date date = cal.getTime();
    TimeZone tz = cal.getTimeZone();

    // Milliseconds since epoch GMT
    long msFromEpochGmt = date.getTime();

    // Current offset from GMT at current date
    int offsetFromUTC = tz.getOffset(msFromEpochGmt);

    // Create a GMT calendar, set time, and add offset
    Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
    gmtCal.setTime(date);
    gmtCal.add(Calendar.MILLISECOND, offsetFromUTC);

    return gmtCal;
}

이 메서드는 입력 달력을 GMT 달력으로 변환하여 웹 서비스의 타임스탬프가 GMT로 정확하도록 보장합니다. 이 방법은 현재 일광 절약 시간 변경을 처리하지 않습니다.

위 내용은 Java 타임스탬프를 다른 시간대로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.