1

こんにちは、以下のコードで、出力を9と10として取得しています。なぜそれが起こっているのですか?カレンダーのタイムゾーンは異なりますが、同じ日付を渡して時刻を設定しています。私の知る限り、時間はエポックから相対値として計算されるため、この相対値はタイムゾーンに関係なく同じである必要があります。

あるタイムゾーンのDBと別のタイムゾーンのサーバーで同様の問題に直面しています。

Date date = new Date ();
    Calendar c = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"),Locale.US);
    Calendar c1 = Calendar.getInstance();
    c.setTime(date);
    c1.setTime(date);
    System.out.println(c.get(Calendar.HOUR));
    System.out.println(c1.get(Calendar.HOUR));
4

1 に答える 1

2

日付を渡すと、UTCタイムスタンプが取得され(GMT + 0の01-01-1970からのミリ秒数)、両方のカレンダーを同じ時刻に設定し、それが何時かを尋ねます。

明らかに、時間はタイムゾーンによって異なります。LAタイムゾーンとコードを実行するコンピューターのタイムゾーンは、まったく同じUTC時刻で初期化されていますが、

于 2013-02-27T05:36:53.027 に答える