0Pricing
Java Academy · درس

LocalDate وLocalTime وLocalDateTime

مثّلوا التواريخ والأوقات

LocalDate وLocalTime وLocalDateTime درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 4 دروس في المجموع.

واجهة برمجة التطبيقات الحديثة للتاريخ

منذ Java 8، استبدلت الحزمة java.time الفئتين القديمتين والمعرضتين للأخطاء Date وCalendar. وأنواعها الأساسية هي LocalDate وLocalTime وLocalDateTime.

جميع هذه الأنواع غير قابلة للتغيير وآمنة في بيئة متعددة الخيوط.

LocalDate

يمثل LocalDate تاريخًا من دون مكوّن زمني: سنة وشهرًا ويومًا. ويعطي LocalDate.now() تاريخ اليوم، لكن يجب أن تستخدم الاختبارات تاريخًا ثابتًا للحصول على ناتج يمكن التنبؤ به.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        System.out.println(date);
    }
}

قراءة أجزاء التاريخ

يمكنك استخراج كل مكوّن باستخدام getYear وgetMonthValue وgetDayOfMonth وgetDayOfWeek المفيد.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        System.out.println(date.getYear());
        System.out.println(date.getMonthValue());
        System.out.println(date.getDayOfWeek());
    }
}

LocalTime

يمثّل LocalTime وقتًا من اليوم من دون تاريخ: الساعات والدقائق والثواني والنانوثواني.

import java.time.LocalTime;

public class Main {
    public static void main(String[] args) {
        LocalTime time = LocalTime.of(14, 30, 15);
        System.out.println(time);
        System.out.println(time.getHour());
    }
}

LocalDateTime

يجمع LocalDateTime بين التاريخ والوقت في قيمة واحدة. لكنه لا يزال من دون منطقة زمنية مرتبطة به.

import java.time.LocalDateTime;

public class Main {
    public static void main(String[] args) {
        LocalDateTime dt = LocalDateTime.of(2026, 5, 30, 9, 45);
        System.out.println(dt);
    }
}

دمج التاريخ والوقت

يمكنكم دمج LocalDate مع LocalTime باستخدام atTime، لإنتاج LocalDateTime.

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;

public class Main {
    public static void main(String[] args) {
        LocalDate d = LocalDate.of(2026, 5, 30);
        LocalTime t = LocalTime.of(8, 0);
        LocalDateTime dt = d.atTime(t);
        System.out.println(dt);
    }
}

عدم القابلية للتغيير وwith

هذه الأنواع غير قابلة للتغيير. فالأساليب مثل withYear تُعيد نسخة معدّلة جديدة وتترك النسخة الأصلية من دون تغيير.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate original = LocalDate.of(2026, 5, 30);
        LocalDate changed = original.withYear(2030);
        System.out.println(original);
        System.out.println(changed);
    }
}

مقارنة التواريخ

استخدموا isBefore وisAfter وisEqual لمقارنة الترتيب الزمني بطريقة واضحة وسهلة القراءة.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate a = LocalDate.of(2026, 1, 1);
        LocalDate b = LocalDate.of(2026, 12, 31);
        System.out.println(a.isBefore(b));
        System.out.println(a.isAfter(b));
    }
}

استعلامات مفيدة

تجيب الأساليب المساعدة عن الأسئلة الشائعة، مثل isLeapYear وlengthOfMonth.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2024, 2, 1);
        System.out.println(date.isLeapYear());
        System.out.println(date.lengthOfMonth());
    }
}

التحليل من نص

يمكن لكل نوع تحليل سلسلة نصية بتنسيق ISO. يقرأ LocalDate.parse قيمة مثل 2026-05-30.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.parse("2026-05-30");
        System.out.println(date.getMonth());
    }
}

اختيار النوع المناسب

استخدموا LocalDate لأعياد الميلاد وتواريخ التقويم، وLocalTime لساعات العمل، وLocalDateTime لموعد يجمع بين تاريخ ووقت. لا يحمل أيٌّ منها منطقة زمنية.

اختبار سريع

اختبروا مدى استيعابكم للأنواع الأساسية للتاريخ والوقت.

مراجعة

تعلّمتم الأنواع الأساسية من java.time:

  • LocalDate للتواريخ، وLocalTime للأوقات، وLocalDateTime لكليهما
  • جميعها غير قابلة للتغيير؛ إذ تُعيد أساليب with نسخًا جديدة
  • اقرؤوا الأجزاء باستخدام getYear وgetDayOfWeek والمُحصِلات المماثلة
  • قارنوا باستخدام isBefore وisAfter
  • حلّلوا سلاسل ISO باستخدام parse

الأسئلة الشائعة

هل درس «LocalDate وLocalTime وLocalDateTime» مجاني؟

نعم — نص درس «LocalDate وLocalTime وLocalDateTime» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 4 دروس في المجموع.

ماذا ستتعلم في «LocalDate وLocalTime وLocalDateTime»؟

مثّلوا التواريخ والأوقات تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟

لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «LocalDate وLocalTime وLocalDateTime»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟

نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. LocalDate وLocalTime وLocalDateTime
  2. Instant وDuration
  3. Period وحساب التواريخ
  4. التنسيق باستخدام DateTimeFormatter
← العودة إلى Java Academy