-1
當我通過每個步驟調試以初始化日曆時,日期正確設置爲31.07.2016。但是當我跨過日曆方法時,日期錯誤地設置爲02.08.2016。有人可以解釋這種意外的行爲嗎?在java中使用日曆類型時的意外行爲
import java.util.Calendar;
public class Test {
public static void main(String[] args)
{
Calendar startCalendar = initializeCalendar("31.07.2016");
}
private static Calendar initializeCalendar(String date)
{
int[] dateValues = extractDate(date);
Calendar calendar = createCalendar();
calendar.set(Calendar.DAY_OF_MONTH, dateValues[0]);
calendar.set(Calendar.MONTH, dateValues[1]-1);
calendar.set(Calendar.YEAR, dateValues[2]);
return calendar;
}
private static Calendar createCalendar()
{
Calendar calendar = Calendar.getInstance();
calendar.clear();
return calendar;
}
private static int[] extractDate(String date)
{
String[] ddmmyyy = date.split("\\.");
return new int[]{Integer.parseInt(ddmmyyy[0]), Integer.parseInt(ddmmyyy[1]), Integer.parseInt(ddmmyyy[2])};
}
}
你能上線的意見更新您發佈的代碼,其中的日期是正確和不正確? – bradimus
這工作正常。爲什麼不使用'SimpleDateFormat'? – Tunaki