TL; DR
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
java.time
แนวทางสมัยใหม่ใช้คลาส java.time
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
สังเกตวิธีที่เราระบุLocale
เช่นLocale.CANADA_FRENCH
เพื่อกำหนดภาษาของมนุษย์ที่ใช้แปลชื่อวัน
DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;
ISO 8601
โดยวิธีการที่คุณอาจจะสนใจในมาตรฐานISO 8601 สัปดาห์ที่yyyy-Www-d
หมายเลขโครงการ:
2018-W01-2
สัปดาห์ # 1 มีวันพฤหัสบดีแรกของปีปฏิทิน สัปดาห์เริ่มในวันจันทร์ หนึ่งปีมี 52 หรือ 53 สัปดาห์ สองสามวันสุดท้าย / สองสามวันแรกของปีปฏิทินอาจมาถึงในปีถัดไป / สัปดาห์ก่อนหน้า
เลขตัวเดียวในตอนท้ายคือวันในสัปดาห์ 1-7 สำหรับวันจันทร์ - วันอาทิตย์
เพิ่มคลาสไลบรารีThreeTen-Extraในโปรเจ็กต์ของคุณสำหรับYearWeek
คลาส
เกี่ยวกับjava.time
java.timeกรอบถูกสร้างขึ้นใน Java 8 และต่อมา ชั้นเรียนเหล่านี้แย่งลำบากเก่ามรดกเรียนวันที่เวลาเช่นjava.util.Date
, และCalendar
SimpleDateFormat
โครงการJoda-Timeขณะนี้อยู่ในโหมดการบำรุงรักษาแนะนำการโยกย้ายไปยังคลาส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
- การใช้งานกลุ่ม Android เวอร์ชันที่ใหม่กว่าของคลาส java.time
- สำหรับก่อนหน้านี้ของ Android ที่ThreeTenABPโครงการปรับThreeTen-ย้ายกลับ (ดังกล่าวข้างต้น) ดูวิธีใช้ ThreeTenABP … .
โครงการThreeTen-Extraขยาย java.time ด้วยคลาสเพิ่มเติม โปรเจ็กต์นี้เป็นพื้นที่พิสูจน์สำหรับการเพิ่ม java.time ในอนาคต คุณอาจพบว่าการเรียนที่มีประโยชน์บางอย่างที่นี่เช่นInterval
, YearWeek
, YearQuarter
และอื่น ๆ อีกมากมาย
dd
เป็นฟอร์แมตล่ะ