我嘗試獲取Java中的開始日期和結束日期,我有JCombobox
年和1月份的月份列表JCombobox
到Dispay年。java.time.DateTimeException:無效日期'2月29日'爲'2017'不是閏年Java
首先我必須轉換String
個月到一個月數量和使用此代碼:
if(month_sands.getSelectedIndex() != -1){
int monthnumber = month_sands.getSelectedIndex() + 1;
if(monthnumber>=9)
{
month=String.valueOf(monthnumber);
}else
{
month="0"+String.valueOf(monthnumber);
}
}
後來我創建了一個字符串dateString
獲得第一,並使用LocalDate
所選月份的最後日期,每一件事情是工作正常,但是當我選擇了2月月至2017年這一年給我異常java.time.DateTimeException: Invalid date 'February 29' as '2017' is not a leap year
獲取的第一和最後一個日期代碼是
try {
String dateString = year_sands.getSelectedItem().toString()+"-"+month+"-"+"01";
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.US);
LocalDate date = LocalDate.parse(dateString, dateFormat);
LocalDate startDate=date.withDayOfMonth(1);
LocalDate endDate = date.withDayOfMonth(date.getMonth().maxLength());
start_date=startDate.toString();
end_date=endDate.toString();
System.out.println(start_date);
System.out.println(end_date);
} catch (Exception e) {
e.printStackTrace();
}
我不知道我做錯了,請有人幫我
我知道,但如何引發異常,您可以解釋 –
順便說一下,在將來,請包括異常的完整堆棧跟蹤 - 和/或添加一個註釋到您的代碼解釋哪一行異常發生了。 – yshavit
好吧,我得到了我的答案 –