3

私のサーバーは「アメリカ/サンパウロ」のタイムゾーンに設定されており、今年は10月21日にサマータイムが始まりました。

なぜ私はこれを行う場合

public static void main(String[] args){

    Calendar d1 = new GregorianCalendar(2012, 9, 19, 0, 0, 0);

    Calendar d2 = new GregorianCalendar(2012, 9, 22, 0, 0, 0);

    while(d1.compareTo(d2) <= 0){
        System.out.println("\nBEFORE: " + d1.getTime());
        d1.add(Calendar.DAY_OF_MONTH, 1);
        System.out.println("AFTER: " + d1.getTime());
    }


}

私はこの出力を持っています

前: 2012 年 10 月 19 日金曜日 00:00:00 BRT

AFTER: 10 月 20 日土曜日 00:00:00 BRT 2012

BEFORE: 2012 年 10 月 20 日 00:00:00 BRT

後: 10 月 21 日 (日) 01:00:00 BRST 2012

BEFORE: 2012 年 10 月 21 日 (日) 01:00:00 BRST

後: 月 10 月 22 日 01:00:00 BRST 2012

私がこれを行うときd1.add(Calendar.DAY_OF_MONTH, 1)時間ではなく、日だけを増やす必要がありますよね?これを回避し、元の時間を維持するにはどうすればよいですか。GMT-3 を使用したくありません。DST はいつにする必要がありますか。

ありがとう

4

1 に答える 1