Sử dụng LocalDateTime#parse()(hoặc ZonedDateTime#parse()nếu chuỗi xảy ra để chứa một phần múi giờ) để phân tích một mẫu Stringtrong một mẫu nhất định thành một LocalDateTime.
String oldstring = "2011-01-18 00:00:00.0";
LocalDateTime datetime = LocalDateTime.parse(oldstring, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S"));
Sử dụng LocalDateTime#format()(hoặc ZonedDateTime#format()) để định dạng a LocalDateTimethành một Stringmẫu nhất định.
String newstring = datetime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(newstring); // 2011-01-18
Hoặc , khi bạn chưa có trên Java 8, hãy sử dụng SimpleDateFormat#parse()để phân tích một Stringmẫu theo một mẫu nhất định thành một Date.
String oldstring = "2011-01-18 00:00:00.0";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldstring);
Sử dụng SimpleDateFormat#format()để định dạng a Datethành một Stringtrong một mẫu nhất định.
String newstring = new SimpleDateFormat("yyyy-MM-dd").format(date);
System.out.println(newstring); // 2011-01-18
Xem thêm:
Cập nhật : theo nỗ lực thất bại của bạn: các mẫu có phân biệt chữ hoa chữ thường . Đọc java.text.SimpleDateFormatjavadoc những gì các phần riêng lẻ đại diện cho. Vì vậy, ví dụ Mcho tháng và mtrong vài phút. Ngoài ra, năm tồn tại của bốn chữ số yyyy, không phải năm yyyyy. Nhìn kỹ hơn các đoạn mã tôi đã đăng ở đây.