ホームページ  >  記事  >  Java  >  Java タイムスタンプを別のタイムゾーンに変換するにはどうすればよいですか?

Java タイムスタンプを別のタイムゾーンに変換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-19 10:52:02216ブラウズ

How to Convert Java Timestamps to Different Time Zones?

Java タイムスタンプを異なるタイムゾーンに変換する

Java では、デフォルトでタイムスタンプはグリニッジ標準時 (GMT) になります。ただし、さまざまなタイム ゾーンからのユーザー入力を処理する場合は、タイムスタンプをユーザーの特定のタイム ゾーンに変換する必要があります。

次のシナリオを考えてみましょう。東部標準時 (EST) のユーザーがタイムスタンプ「5/1」を提供するとします。 /2008 6:12 PM (EST)」。 Web サービスは、GMT でのタイムスタンプ、つまり「2008 年 5 月 1 日 6:12 PM (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 カレンダーに変換し、Web サービスのタイムスタンプが GMT で正確であることを保証します。現在、このメソッドは夏時間の変更を処理しないことに注意してください。

以上がJava タイムスタンプを別のタイムゾーンに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。