ご想像のとおり、これにより、私のソフトウェアに Y2K スタイルのバグが発生しました。奇妙なことに、1 年ずれの計算は 1 年に 2 日しか発生しないため、トラブルシューティングの方法がよくわかりません。
出力:
03-Jan-2013
02-Jan-2013
01-Jan-2013
31-Dec-2013 ** strange
30-Dec-2013 ** strange
29-Dec-2012
28-Dec-2012
27-Dec-2012
26-Dec-2012
25-Dec-2012
Java 日付ユーティリティのどの部分でこのようなエラーが発生するのかわかりません。
コード (テストが非常に小さいため、完全な作業プログラムを含めました):
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateT {
private static String getFormattedBackscanStartTime(int days) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-YYYY");
Calendar workingDate = Calendar.getInstance();
workingDate.add(Calendar.DATE, -1 * days);
String formattedStartTime = dateFormat.format(workingDate.getTime());
return formattedStartTime;
}
public static void main(String args[]) {
for(int i = 35; i < 45; i++) {
System.out.println(getFormattedBackscanStartTime(i));
}
}
}