私の要件は次のようなものです。
データベースとタイムゾーンでミリ秒単位の時間を節約しています。たとえば、ミリ秒単位の時間は 1223123123232
長く、タイムゾーンはAsia/Calcutta
です。Africa/Asmara
タイムゾーンに変換する必要があります。
long l = 1223123123232l;
TimeZone tz = TimeZone.getTimeZone("Asia/Calcutta");
long tzOff = tz.getOffset(l);
java.util.Date d = new Date(l-tzOff); // WHY THIS??
DateFormat df = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z");
df.setTimeZone(TimeZone.getTimeZone("Africa/Asmara"));// required timezone
String s = df.format(d);
System.out.println(s);
私がこれを参照していることを確認するには:リンク
私の質問は:
- タイムゾーンがさまざまな形式(GMTからオフセットされた地理的領域)での時間の表現である場合、実際の時間からオフセット時間を差し引く必要があるのはなぜ
(l-tzOff)
ですか? - データベースに保存されているタイムゾーンを無視して、日付を変換したいタイムゾーンのみを考慮できないのはなぜですか?
何かのようなもの:
long l = 1223123123232l;
java.util.Date d = new Date(l);
DateFormat df = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z");
df.setTimeZone(TimeZone.getTimeZone("Africa/Asmara"));// required timezone
String s = df.format(d);
System.out.println(s);
私のシステムのタイムゾーンは、タイムゾーンの日付をタイムゾーンAsia/Calcutta
に変換したいのですが、この場合、上記のコードは機能しませんか?なぜそうなのですか?Africa/Bujumbura
Europe/Vatican