Використовуйте LocalDateTime#parse()
(або ZonedDateTime#parse()
якщо рядок містить частину часового поясу) для розбору String
певного шаблону на a 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()
для розбору 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
. Погляньте ближче на фрагменти коду, які я розмістив тут вище.