Joda-Time จัดเตรียมการทดแทนที่มีคุณภาพสำหรับคลาสวันที่และเวลาของ Java การออกแบบนี้อนุญาตให้ใช้ระบบปฏิทินได้หลายระบบ ในขณะที่ยังคงมี API แบบธรรมดา ปฏิทิน 'เริ่มต้น' คือมาตรฐาน ISO8601 ซึ่งใช้โดย XML รวมถึงระบบเกรโกเรียน จูเลียน พุทธ คอปติก เอธิโอเปีย และอิสลามด้วย คลาสที่สนับสนุน ได้แก่ โซนเวลา ระยะเวลา รูปแบบ และการแยกวิเคราะห์
Joda-time ไม่ได้อยู่ในการพัฒนาอีกต่อไป ยกเว้นเพื่อให้ข้อมูลเขตเวลาเป็นปัจจุบัน ตั้งแต่ Java SE 8 เป็นต้นไป ผู้ใช้จะถูกขอให้ย้ายไปยัง java.time
(JSR-310) ซึ่งเป็นส่วนหลักของ JDK ซึ่งจะมาแทนที่โปรเจ็กต์นี้ สำหรับผู้ใช้ Android java.time
จะถูกเพิ่มใน API 26+ โปรเจ็กต์ที่ต้องการรองรับระดับ API ที่ต่ำกว่าสามารถใช้ไลบรารี ThreeTenABP ได้
เพื่อเป็นรสชาติของ Joda-Time นี่คือโค้ดตัวอย่างบางส่วน:
public boolean isAfterPayDay ( DateTime datetime ) {
if ( datetime . getMonthOfYear () == 2 ) { // February is month 2!!
return datetime . getDayOfMonth () > 26 ;
}
return datetime . getDayOfMonth () > 28 ;
}
public Days daysToNewYear ( LocalDate fromDate ) {
LocalDate newYear = fromDate . plusYears ( 1 ). withDayOfYear ( 1 );
return Days . daysBetween ( fromDate , newYear );
}
public boolean isRentalOverdue ( DateTime datetimeRented ) {
Period rentalPeriod = new Period (). withDays ( 2 ). withHours ( 12 );
return datetimeRented . plus ( rentalPeriod ). isBeforeNow ();
}
public String getBirthMonthText ( LocalDate dateOfBirth ) {
return dateOfBirth . monthOfYear (). getAsText ( Locale . ENGLISH );
}
Joda-Time ได้รับใบอนุญาตภายใต้ลิขสิทธิ์ Apache 2.0 ที่เป็นมิตรต่อธุรกิจ
มีเอกสารต่างๆ:
รีลีส 2.13.0 เป็นรีลีสล่าสุดในปัจจุบัน รุ่นนี้ถือว่ามีเสถียรภาพและคุ้มค่ากับแท็ก 2.x ขึ้นอยู่กับ JDK 1.5 หรือใหม่กว่า
มีอยู่ในที่เก็บ Maven Central
การกำหนดค่ามาเวน:
< dependency >
< groupId >joda-time</ groupId >
< artifactId >joda-time</ artifactId >
< version >2.13.0</ version >
</ dependency >
การกำหนดค่า Gradle:
compile ' joda-time:joda-time:2.13.0 '
โครงการที่เกี่ยวข้องที่ GitHub:
โครงการอื่นๆ ที่เกี่ยวข้อง:
มีให้เป็นส่วนหนึ่งของการสมัครสมาชิก Tidelift
Joda และผู้ดูแลแพ็คเกจอื่นๆ นับพันรายการกำลังทำงานร่วมกับ Tidelift เพื่อมอบการสมัครสมาชิกระดับองค์กรเดียวที่ครอบคลุมโอเพ่นซอร์สทั้งหมดที่คุณใช้
หากคุณต้องการความยืดหยุ่นของโอเพ่นซอร์สและความมั่นใจของซอฟต์แวร์เชิงพาณิชย์ นี่คือสิ่งที่คุณต้องการ
เรียนรู้เพิ่มเติม
โปรดใช้ Stack Overflow สำหรับคำถามเกี่ยวกับการใช้งานทั่วไป ปัญหา GitHub และคำขอดึงควรใช้เมื่อคุณต้องการช่วยให้โครงการก้าวหน้า
การบริจาคเพื่อสนับสนุนโครงการได้รับการยอมรับผ่านทาง OpenCollective
หากต้องการรายงานช่องโหว่ด้านความปลอดภัย โปรดใช้ผู้ติดต่อด้านความปลอดภัยของ Tidelift Tidelift จะประสานการแก้ไขและเปิดเผยข้อมูล
Joda-Time ได้รับการพัฒนาโดยใช้เครื่องมือ GitHub มาตรฐาน มีไฟล์ Checkstyle และ PR จะต้องปฏิบัติตาม โปรเจ็กต์สามารถสร้างได้โดยใช้ Apache Maven เช่น mvn clean install
การบูรณาการอย่างต่อเนื่องเกิดขึ้นโดยใช้ GitHub Actions การทดสอบหน่วยเขียนด้วย JUnit และรันโดยเป็นส่วนหนึ่งของการสร้างและบูรณาการอย่างต่อเนื่อง การเปลี่ยนแปลงผ่านทาง PR จะต้องรวมความครอบคลุมการทดสอบที่เหมาะสม
โปรดทราบว่า Joda-Time ถือเป็นโครงการที่ "เสร็จสิ้นแล้ว" ส่วนใหญ่ ไม่มีการวางแผนการปรับปรุงที่สำคัญ หากใช้ Java SE 8 โปรดย้ายไปยัง java.time (JSR-310)
mvn clean deploy -Doss.repo -Dgpg.passphrase=""