UTC の長いタイムスタンプを東部標準時間に変換しようとしていますが、完全に失われています。どんなヒントも素晴らしいでしょう!
ありがとう、R
これを試して:
Date estTime = new Date(utcTime.getTime() + TimeZone.getTimeZone("EST").getRawOffset());
utcTime は UTC 時間の Date オブジェクトです (既に long 値を持っている場合は、それを使用してください)
final Calendar c = Calendar.getInstance(TimeZone.getTimeZone("EST"));
c.setTimeInMillis(longTime);
エポックlongTime
からの UTC 時間でのミリ秒数です。その後、 Calendarクラスのメソッドを使用して、日付/時刻のさまざまなコンポーネントを取得できます。
rd42、これについてもう少し説明してもらえますか?
あなたは「UTCタイムスタンプ」を持っていると言います。これはデータベースに保存されていますか?文字列ですか?
これを作業しようとしているコンテキストを提供できれば、より多くの答えを提供できるかもしれません.
わかりやすくするために、あなたが言っていることは、UTC のタイムスタンプを表す long 値があるということです。
その場合、あなたがやりたいことは次のとおりです。
import java.util.Calendar;
import java.util.TimeZone;
TimeZone utcTZ= TimeZone.getTimeZone("UTC");
Calendar utcCal= Calendar.getInstance(utcTZ);
utcCal.setTimeInMillis(utcAsLongValue);
これで、カレンダー オブジェクトが UTC になりました。
これを表示するには、次のようにします。
import java.text.SimpleDateFormat;
import java.util.Date;
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzz");
sdf.setTimeZone(utcTZ);
Date utcDate= utcCal.getTime();
sdf.formatDate(utcDate);
これにより、long 値として保存されている UTC タイム ゾーンのタイムスタンプを読み取り、それを Java Calendar または Date オブジェクトに変換できます。
必要な場所に移動できることを願っています。