0

1) したがって、秒単位で指定された日付と時刻があり、タイムゾーンのオフセットも秒単位です。

eventTime = 1348880602
eventTimezoneOffset = -180

2)私はこれを次のように印刷しています:

Date date = new Date(eventTime);
SimpleDateFormat sdf = new SimpleDateFormat("E, MMM dd, yyyy @ h:mmaa");
System.out.println(sdf.format(date));

2012 年 9 月 28 日 (金) 午後 10 時 3 分

3)ただし、これは自分のマシンで実行する場合です。

私のサーバーで実行すると、次のようになります: 金, 9月 28, 2012 @ 9:03PM

サーバーとマシンの時差のため。

4) そのため、アプリケーションを実行しているサーバーの場所に関係なく、eventTimezoneOffset を使用して Date または SimpleDateFormat オブジェクトを正しいタイムゾーン時間で表すように設定しようとしていました。

5) SimpleDateFormat でタイムゾーンを設定しようとしましたが、秒単位で eventTimezoneOffset を使用してそれを行う方法がわかりませんでした。

6) 明確にするために、イベントは世界中で発生する可能性があります。各イベントはエポックからの秒数で追跡されます。そのため、eventTime だけを見ると、アプリケーションが実行されているタイムゾーンに関係なく表示されます。場所のタイムゾーンを考慮して、イベントの正確な時刻を取得するには、timezoneOffet が提供されます。timezoneOffset を適用する方法がわかりません。

4

1 に答える 1

0

SimpleDateFormatインスタンスのsetTimeZoneメソッドを使用してタイムゾーンを設定します。

SimpleDateFormat sdf = new SimpleDateFormat("E, MMM dd, yyyy @ h:mmaa");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
于 2012-09-29T23:46:09.907 に答える