从JDateChooser

时间:2018-08-01 17:07:41

标签: java calendar jdatechooser

我陷入了编程问题。我正在SQlite附带的Eclipse中制作Java应用程序。我希望用户从JDateChooser中选择一个日期,并从JDateChooser中指定的两天后的日期显示到下一个字段中。 我正在使用以下我知道有效的代码。

 DateFormat df=new SimpleDateFormat("dd-MM-yyyy");
 Date date =  df.parse(ArrivalDate);
 Calendar cal = Calendar.getInstance();                 
 cal.add(Calendar.DAY_OF_MONTH, 2); // Add 30 days
 Date futureDate = cal.getTime();
 String NextDate=df.format(futureDate);

----这里ArrivalDate是用户输入的日期。 这里的问题是,日历类选择一天的当前日期。不适用于用户选择的日期。 例如,如果今天日期是01/08/2018,并且用户输入了12/08/2018。此代码将返回03/08/2018,而不是14/08/2018。我如何实现这种情况?请帮助。

1 个答案:

答案 0 :(得分:0)

使用LocalDateDateTimeFormmatter代替DateCalendar可以做到:

public static void main(String[] args) {
    String arrivalDate = "12/08/2018";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
    LocalDate arrival = LocalDate.parse(arrivalDate, formatter);
    LocalDate futureDay = arrival.plusDays(2);
    String nextDate = futureDay.format(formatter);
    System.out.println("Arrival: " + arrivalDate);
    System.out.println("Next Day: " + nextDate);
}

输出:

Arrival: 12/08/2018
Next Day: 14/08/2018