Используйте 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.SimpleDateFormat
Javadoc, что означает отдельные части. Так стоит например M
месяцами и m
минутами. Кроме того, годы существуют из четырех цифр yyyy
, а не пяти yyyyy
. Посмотрите ближе на фрагменты кода, которые я разместил здесь выше.