私のサーバーは「アメリカ/サンパウロ」のタイムゾーンに設定されており、今年は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 はいつにする必要がありますか。
ありがとう