Как найти будущую дату на 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
,