0Pricing
Java Academy · درس

Instant وDuration

وقت الجهاز والفواصل الزمنية

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

وقت الآلة

بينما يُستخدم LocalDateTime لتقويم البشر، تمثّل Instant نقطة دقيقة على الخط الزمني للآلة، مقيسةً انطلاقًا من حقبة 1970-01-01 بالتوقيت العالمي UTC.

تمثّل Duration مدة زمنية بين لحظتين.

إنشاء Instant

تلتقط Instant.now() اللحظة الحالية. وللحصول على مخرجات يمكن توقّعها، يمكننا إنشاء قيمة من ثانية حقبة ثابتة باستخدام ofEpochSecond.

import java.time.Instant;

public class Main {
    public static void main(String[] args) {
        Instant fixed = Instant.ofEpochSecond(1000000000);
        System.out.println(fixed);
    }
}

ثواني الحقبة والميلي ثانية

يمكنكم قراءة قيم الحقبة الأساسية باستخدام getEpochSecond وtoEpochMilli. وتفيد هذه القيم في الطوابع الزمنية والتخزين.

import java.time.Instant;

public class Main {
    public static void main(String[] args) {
        Instant t = Instant.ofEpochSecond(1500000000);
        System.out.println(t.getEpochSecond());
        System.out.println(t.toEpochMilli());
    }
}

إنشاء Duration

أنشئوا Duration باستخدام أساليب الإنشاء مثل ofHours وofMinutes وofSeconds.

import java.time.Duration;

public class Main {
    public static void main(String[] args) {
        Duration d = Duration.ofMinutes(90);
        System.out.println(d);
        System.out.println(d.toHours());
    }
}

المدة بين لحظتين

يقيس Duration.between الفاصل بين لحظتين. وهذه هي الطريقة القياسية لقياس المدة التي استغرقها شيء ما.

import java.time.Duration;
import java.time.Instant;

public class Main {
    public static void main(String[] args) {
        Instant start = Instant.ofEpochSecond(1000);
        Instant end = Instant.ofEpochSecond(1075);
        Duration elapsed = Duration.between(start, end);
        System.out.println(elapsed.getSeconds());
    }
}

تحويل المدد

يمكن لـ Duration إظهار قيمته بوحدات مختلفة باستخدام toMinutes وtoHours وtoDays وtoMillis.

import java.time.Duration;

public class Main {
    public static void main(String[] args) {
        Duration d = Duration.ofSeconds(7320);
        System.out.println(d.toMinutes());
        System.out.println(d.toHours());
    }
}

إضافة مدة إلى Instant

حرّكوا اللحظة إلى الأمام أو الخلف باستخدام plus وminus، مع تمرير Duration.

import java.time.Duration;
import java.time.Instant;

public class Main {
    public static void main(String[] args) {
        Instant now = Instant.ofEpochSecond(1000);
        Instant later = now.plus(Duration.ofHours(2));
        System.out.println(later.getEpochSecond());
    }
}

الأساليب المساعدة للإضافة

تتيح لكم الأساليب المساعدة مثل plusSeconds وplusMillis تجاوز إنشاء Duration عند إجراء تحريك بسيط.

import java.time.Instant;

public class Main {
    public static void main(String[] args) {
        Instant t = Instant.ofEpochSecond(0);
        System.out.println(t.plusSeconds(3600).getEpochSecond());
    }
}

مقارنة اللحظات

استخدموا isBefore وisAfter لتحديد ترتيب لحظتين على الخط الزمني.

import java.time.Instant;

public class Main {
    public static void main(String[] args) {
        Instant a = Instant.ofEpochSecond(100);
        Instant b = Instant.ofEpochSecond(200);
        System.out.println(a.isBefore(b));
    }
}

المدد السالبة

إذا كانت النهاية أسبق من البداية، تكون المدة سالبة. يساعدكم isNegative وabs في التعامل مع هذه الحالة.

import java.time.Duration;
import java.time.Instant;

public class Main {
    public static void main(String[] args) {
        Duration d = Duration.between(Instant.ofEpochSecond(200), Instant.ofEpochSecond(100));
        System.out.println(d.isNegative());
        System.out.println(d.abs().getSeconds());
    }
}

Instant مقابل LocalDateTime

استخدموا Instant للطوابع الزمنية والتسجيل وقياس الوقت المنقضي، لأنه يمثّل وقتًا عالميًا UTC لا يسبب التباسًا. واستخدموا LocalDateTime لقيم التقويم البشرية عندما تُعالَج المنطقة الزمنية في مكان آخر.

اختبار سريع

اختبروا مدى فهمكم لـ Instant وDuration.

مراجعة

تعلّمتم عن وقت الآلة:

  • تمثّل Instant نقطة دقيقة على الخط الزمني UTC انطلاقًا من حقبة 1970
  • تمثّل Duration مقدارًا زمنيًا يُنشأ باستخدام ofHours وما شابهها
  • يقيس Duration.between الوقت المنقضي
  • حرّكوا اللحظات باستخدام plus وminus
  • استخدموا Instant للطوابع الزمنية وLocalDateTime للتواريخ البشرية

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

هل درس «Instant وDuration» مجاني؟

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

ماذا ستتعلم في «Instant وDuration»؟

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

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

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

كم من الوقت يستغرق درس «Instant وDuration»؟

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

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

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

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

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