我陷入了编程问题。我正在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。我如何实现这种情况?请帮助。
答案 0 :(得分:0)
使用LocalDate
和DateTimeFormmatter
代替Date
和Calendar
可以做到:
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