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 サイトの他の関連記事を参照してください。