Используйте LocalDateTime#parse()(или, ZonedDateTime#parse()если строка содержит часть часового пояса), чтобы проанализировать Stringопределенный шаблон в LocalDateTime.
String oldstring = "2011-01-18 00:00:00.0";
LocalDateTime datetime = LocalDateTime.parse(oldstring, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S"));
использование LocalDateTime#format() (или ZonedDateTime#format()) для формирования LocalDateTimeв Stringв определенном порядке.
String newstring = datetime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(newstring); // 2011-01-18
Или , когда вы еще не работаете в Java 8, используйте SimpleDateFormat#parse()для анализа a Stringпо определенному шаблону в Date.
String oldstring = "2011-01-18 00:00:00.0";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldstring);
Используйте SimpleDateFormat#format()для форматирования карты Dateв Stringв определенном порядке.
String newstring = new SimpleDateFormat("yyyy-MM-dd").format(date);
System.out.println(newstring); // 2011-01-18
Смотрите также:
Обновление : согласно вашей неудачной попытке: шаблоны чувствительны к регистру . Прочитайте java.text.SimpleDateFormatJavadoc, что означает отдельные части. Так стоит например Mмесяцами и mминутами. Кроме того, годы существуют из четырех цифр yyyy, а не пяти yyyyy. Посмотрите ближе на фрагменты кода, которые я разместил здесь выше.