أساسيات واجهة برمجة java.time
استخدم أنواع التاريخ/الوقت الثابتة والواضحة بدلاً من Date و Calendar.
مقارنة الكود
✕ Pre-Java 8
// Mutable, confusing, zero-indexed months Calendar cal = Calendar.getInstance(); cal.set(2025, 0, 15); // January = 0! Date date = cal.getTime(); // not thread-safe
✓ Java 8+
LocalDate date = LocalDate.of(
2025, Month.JANUARY, 15);
LocalTime time = LocalTime.of(14, 30);
Instant now = Instant.now();
// immutable, thread-safe
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
ثابتة
لا يمكن تعديل قيم التاريخ/الوقت بطريق الخطأ.
واجهة برمجية واضحة
Month.JANUARY لا 0. DayOfWeek.MONDAY لا 2.
آمنة للخيوط
لا حاجة للمزامنة — شارك بحرية عبر الخيوط.
الأسلوب القديم
Date + Calendar
الأسلوب الحديث
java.time.*
منذ JDK
8
الصعوبة
مبتدئ
دعم JDK
أساسيات واجهة برمجة java.time
متاح
متاح على نطاق واسع منذ JDK 8 (مارس 2014)
كيف يعمل
تُوفّر java.time الأنواعَ LocalDate و LocalTime و LocalDateTime و Instant و ZonedDateTime — وكلها ثابتة وآمنة للخيوط. الأشهر تبدأ من 1. لا مزيد من الالتباس من Calendar.JANUARY = 0.
توثيق ذو صلة