Парсинг даты Java

Нужно из

String s = "12 12 2020";

сделать точно такую же дату, т.е. Date.

Не

Sat Dec 12 00:00:00 GMT+04:00 2020

А именно

12 12 2020

Уже всю голову сломал.


Ответы (2 шт):

Автор решения: Дмитрий

Можно использовать DateTimeFormatter. Созданный мной паттерн парсит вашу дату, с его же помощью можно привести ее к исходному виду (как и сделано в приведенном мной коде). Если вывод должен отличаться, то напишите свой DateTimeFormatter аналогично моему, но с другим паттерном. И еще... переменные типа даты (будь то старый Date либо LocalDate) хранят лишь информацию. Строчное их представление определяется, как и в любом другом случае, методом toString. А для того, чтобы иметь возможность форматировать это самое строчное представление и служат классы типа DateTimeFormatter.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d M yyyy");        
String s = "12 12 2020";        
LocalDate date = LocalDate.parse(s, formatter);
System.out.println(formatter.format(date));
→ Ссылка
Автор решения: Aziz Umarov

Попробуйте так,

SimpleDateFormat format = new SimpleDateFormat("MM dd yyyy");

String dateString = format.format( new Date()   );
Date   date       = format.parse ( "12 12 2020" );    

Formatter даст вам перевести в Date. Есть изюминка с Date такая что каждая уважающая себя компания реализовала свой класс Date а всё из-за этого

→ Ссылка