Как найти будущую дату на Java(скажем, через два месяца с сегодняшнего дня) в формате 24 февраля 2019 года

Ниже описан подход, с которым я иду:

Date DateObject = new Date();
SimpleDateFormat formatDate = new SimpleDateFormat("dd MMMM yyyy");
String dateString = formatDate.format(DateObject);
System.out.println(dateString);

Теперь это дает мне текущую дату в нужном формате. Я хочу найти значение даты в том же формате ровно через два месяца с этой даты.

Я также попытался работать с подходом ниже:

LocalDate futureDate = LocalDate.now().plusMonths(2);

Это дает мне желаемую дату, которая через два месяца, но в формате 2019-04-24. Когда я пытался отформатировать эту дату с помощью SimpleDateFormat, это дает мне исключение "Незаконный аргумент".

1 ответ

Решение

Попробуйте использовать DateTimeFormatter класс, введенный в Java 8, избегайте использования SimpleDateFormat:

public static void main(String[] args) {
     LocalDate futureDate = LocalDate.now().plusMonths(2);
     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy");
     String dateStr = futureDate.format(formatter);
     System.out.println(dateStr);
}

Выход:

24 April 2019

DateTimeFormatter в Java 8 является неизменной и потокобезопасной альтернативой SimpleDateFormat,

Другие вопросы по тегам