TL; DR
java.time.LocalDateTime.parse(
"04/02/2011 20:27:05" ,
DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss" )
)
java.time
วิธีการที่ทันสมัยใช้คลาส java.time ที่แทนที่Joda-Time ที่น่าเคารพโปรเจ็กต์เชื่อถือ
แยกวิเคราะห์ตามLocalDateTime
อินพุตของคุณไม่มีตัวบ่งชี้ใด ๆ ของเขตเวลาหรือออฟเซ็ตจาก UTC
String input = "04/02/2011 20:27:05" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss" ) ;
LocalDateTime ldt = LocalDateTime.parse( input , f ) ;
ldt.toString (): 2011-02-04T20: 27: 05
เคล็ดลับ: หากเป็นไปได้ให้ใช้รูปแบบISO 8601 มาตรฐานเมื่อแลกเปลี่ยนค่าวันที่และเวลาเป็นข้อความแทนที่จะเป็นรูปแบบที่เห็นที่นี่ สะดวกคลาส java.time ใช้รูปแบบมาตรฐานเมื่อแยก / สร้างสตริง
เกี่ยวกับ java.time
java.timeกรอบถูกสร้างขึ้นใน Java 8 และต่อมา ชั้นเรียนเหล่านี้แย่งลำบากเก่ามรดกเรียนวันที่เวลาเช่นjava.util.Date
, และCalendar
SimpleDateFormat
Joda เวลาโครงการขณะนี้อยู่ในโหมดการบำรุงรักษาให้คำแนะนำแก่การโยกย้ายไปยังjava.timeชั้นเรียน
ต้องการเรียนรู้เพิ่มเติมโปรดดูที่ออราเคิลกวดวิชา และค้นหา Stack Overflow สำหรับตัวอย่างและคำอธิบายมากมาย สเปกJSR 310
จะรับคลาส java.time ได้ที่ไหน?
- Java SE 8 , Java SE 9และใหม่กว่า
- Built-in
- เป็นส่วนหนึ่งของ Java API มาตรฐานที่มีการใช้งานแบบรวม
- Java 9 เพิ่มคุณสมบัติและการแก้ไขเล็กน้อย
- Java SE 6และ Java SE 7
- มากของการทำงาน java.time จะกลับรังเพลิง Java 6 และ 7 ในThreeTen-ย้ายกลับ
- Android
โครงการThreeTen-Extraขยาย java.time ด้วยคลาสเพิ่มเติม โครงการนี้เป็นพื้นฐานที่พิสูจน์ได้สำหรับการเพิ่มเติมในอนาคตไปยัง java.time คุณอาจพบว่าการเรียนที่มีประโยชน์บางอย่างที่นี่เช่นInterval
, YearWeek
, YearQuarter
และอื่น ๆ อีกมากมาย
java.time
แพคเกจในชวา 8 ลองใช้หรือLocalDateTime.parse
Instant.parse