0

受け取った文字列の日付からカレンダー オブジェクトを作成します。

        Calendar cal = Calendar.getInstance();
    String date = "example Mon, 22 Oct 2012 23:58:31 GMT";
    SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
    sdf.setTimeZone (TimeZone.getTimeZone ("PST"));
    try {
        cal.setTime(sdf.parse(date));  
    } catch (ParseException e) {
        e.printStackTrace();

    }
   System.out.println("date "+sdf.format(cal.getTime()));

この日付は、問題なく gmt 時刻を pst に変換して出力します。

次に、要素オブジェクトの配列をループして秒を追加します

int offset = element.getSeconds;
cal.add(Calendar.SECOND, offset);
System.out.println("times cal offset: " + cal.getTime());

この cal はサーバー時間 (東部時間) を出力するようになり、上記の変換された gmt ではありません。秒が追加されたときに、文字列 gmt date から作成された cal をバイパスするものはありますか?

ありがとう!

4

1 に答える 1

3

これは、2 回目の印刷に GMT タイムゾーンが設定された SDF を使用していないためです。

于 2012-11-30T17:53:06.310 に答える