การใช้งานLocalDateTime#parse()(หรือZonedDateTime#parse()ถ้าสตริงที่เกิดขึ้นจะมีส่วนโซนเวลา) เพื่อแยกในรูปแบบบางอย่างเป็นStringLocalDateTime
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()) เพื่อจัดรูปแบบLocalDateTimea Stringในรูปแบบที่แน่นอน
String newstring = datetime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(newstring); // 2011-01-18
หรือเมื่อคุณไม่ได้อยู่ใน Java 8 ยังใช้SimpleDateFormat#parse()ในการแยกวิเคราะห์ในรูปแบบบางอย่างเป็นStringDate
String oldstring = "2011-01-18 00:00:00.0";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldstring);
ใช้SimpleDateFormat#format()เพื่อจัดรูปแบบDatea Stringในรูปแบบที่แน่นอน
String newstring = new SimpleDateFormat("yyyy-MM-dd").format(date);
System.out.println(newstring); // 2011-01-18
ดูสิ่งนี้ด้วย:
ปรับปรุง : เป็นต่อความพยายามที่ล้มเหลวของคุณ: รูปแบบที่มีกรณีที่สำคัญ อ่านjava.text.SimpleDateFormatjavadocว่าแต่ละส่วนนั้นหมายถึงอะไร ยกตัวอย่างเช่นMสำหรับเดือนและmนาที นอกจากนี้ปียังมีตัวเลขสี่หลักyyyyไม่ใช่ห้าyyyyyปี ดูตัวอย่างโค้ดที่ฉันโพสต์ไว้ด้านบน