إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    Java التاريخ و الوقت في جافا

    معرفة التاريخ و الوقت الحالي في جافا

    معرفة التاريخ و الوقت الحالي سهلة جداً في جافا, كل ما عليك فعله هو إنشاء كائن من الكلاس Date و من ثم عرض قيمة هذا الكائن فقط.

    مثال

    Main.java
    import java.util.Date;
     
    public class Main {
     
        public static void main(String[] args) {
     
            // date هنا قمنا بإنشاء تاريخ و وضعناه في الكائن
            Date date = new Date();
     
            // date هنا قمنا بعرض التاريخ الذي تم تخزينه في الكائن
            System.out.println( date );
     
        }
     
    }
    		

    سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

    Tue Dec 22 11:20:42 EET 2015
    		

    هذه النتيجة تتغير حسب الوقت الحالي لجهازك.

    الكلاس Date في جافا

    الكلاس Date هو كلاس جاهز في جافا يستخدم لمعرفة التاريخ و الوقت. و يحتوي على عدة دوال للتعامل مع الوقت سواء لمقارنة وقت مع وقت أو لمعرفة وقت معين إلخ..

    الكلاس Date يحتوي على إثنين كونستركتور ذكرناهما في الجدول التالي.

    الكونستركتور مع تعريفه
    public Date() هذا الكونستركتور يمهد الكائن الذي قام باستدعائه, بالوقت الحالي.
    public Date(long millisec) هذا الكونستركتور يستخدم لتمهيد الكائن الذي يمثل الوقت بعدد بالـ milliseconds ( أي كل ثانية واحدة تساوي 1000 ).
    العدد الذي نضعه يمثل عدد الـ milliseconds الذي سيضاف على هذا التاريخ 1/1/1970 00:00:00 GMT
    أي إذا وضعت 0 ستحصل على هذا التاريخ كما هو.
    و إذا وضعت 1000 ستضيف ثانية على هذا التاريخ.
    و إذا وضعت 2000 ستضيف ثانيتين على هذا التاريخ و هكذا.

    شاهد المثال »

    دوال الكلاس Date في جافا

    إسم الدالة مع تعريفها
    public boolean after(Date when) ترجع true إذا كان كائن الـ Date الذي قام باستدعائها يحتوي على تاريخ أحدث من تاريخ الـ Date الذي نضعه كـ argument.
    تابع القراءة »
    public boolean before(Date when) ترجع true إذا كان كائن الـ Date الذي قام باستدعائها يحتوي على تاريخ أقدم من تاريخ الـ Date الذي نضعه كـ argument.
    تابع القراءة »
    public Object clone() ترجع نسخة ثانية من كائن الـ Date الذي قام باستدعائها.
    تابع القراءة »
    public int compareTo(Date anotherDate) تقارن كائن الـ Date الذي قام باستدعائها مع كائن الـ Date الذي نضعه كـ argument.
    تابع القراءة »
    public boolean equals(Object obj) ترجع true إذا كان كائن الـ Date الذي قام باستدعائها يحتوي على نفس قيمة الكائن الذي نضعه كـ argument.
    تابع القراءة »
    public long getTime() ترجع عدد الـ milliseconds من تاريخ 1/1/1970 إلى تاريخ الوقت الذي تم به استدعاء هذه الدالة.
    تابع القراءة »
    public void setTime(long millisec) تستخدم لتحديد الوقت إعتباراً من تاريخ 1/1/1970, العدد الذي نضعه يمثل عدد الثواني بالـ milliseconds.
    تابع القراءة »
    public int hashCode() ترجع hash code لكائن الـ Date الذي قام باستدعائها.
    تابع القراءة »
    public String toString() تحول قيمة الـ Date لقيمة نوعها String و ترجعها.
    تابع القراءة »

    الكلاس SimpleDateFormat في جافا

    الكلاس SimpleDateFormat يستخدم للحصول على التاريخ و الوقت بالشكل الذي تريده, بمعنى أنه يسمح لك بتخصيص طريقة ظهور التاريخ و الوقت.
    يتم تحديد شكل التاريخ و الوقت في كونستركتور الـ SimpleDateFormat بواسطة الأحرف الأبجدية. هنا يقال لهذه الأحرف user-defined patterns.

    عند تعاملك مع الكلاس SimpleDateFormat يمكنك إستخدام جميع الأحرف من az و من AZ.

    عندما تقوم بتحديد طريقة ظهور التاريخ و الوقت فأنت بذلك تقوم بتحديد الـ format للتاريخ و الوقت.
    بمعنى آخر الأحرف التي تضعها في كونستركتور الـ SimpleDateFormat مع بعضها تشكل الـ format.


    هذا الجدول يحتوي على جميع الأحرف المستخدمة لتحديد الـ format في الكلاس SimpleDateFormat.

    الحرف إستخدامه مثال
    G لإظهار عصر التسمية AD
    Y لإظهار السنة, وتكون مؤلفة من أربع أرقام 2005
    M لإظهار رقم الشهر من السنة 07
    d لإظهار رقم اليوم من الشهر 9
    h لإظهار الساعة, بنظام 12 ساعة (1~12) A.M./P.M. 12
    H لإظهار الساعة في اليوم بنظام 24 ساعة (0~23) 23
    m لإظهار الدقائق في الساعة 45
    s لإظهار الثواني في الدقيقة 36
    S لإظهار الأجزاء في الثانية Millisecond 458
    E لإظهار إسم اليوم في الأسبوع Saturday
    D لإظهار رقم اليوم في السنة 360
    F لإظهار عدد تكرار اليوم في الشهر 3 (third Mon. in May)
    w لإظهار رقم الأسبوع في السنة 34
    W لإظهار رقم الأسبوع في الشهر 1
    a لإظهار إذا كان الوقت الآن A.M/P.M AM
    k لإظهار الساعة في اليوم بنظام 24 ساعة (1~24) 23
    K لإظهار الساعة في اليوم بنظام 12 ساعة (0~11) 9
    z لإظهار المنطقة الزمنية EET
    ' ' لإظهار أي نص Current Date

    مثال

    سنقوم الآن بإنشاء format جديدة لعرض الوقت.

    Main.java
    import java.text.SimpleDateFormat;
    import java.util.Date;
     
    public class Main {
     
        public static void main(String[] args) {
     
            // date هنا قمنا بإنشاء تاريخ و وضعناه في الكائن
            Date date = new Date();
     
            // جديدة لإظهار الوقت format هنا قمنا بإنشاء
            SimpleDateFormat sdf = new SimpleDateFormat("'Current Date:' dd/MM/yy     'Current Time:' hh:mm:ss a");
     
            // ثم قمنا بعرض النتيجة format من خلال الدالة date على الـ format هنا قمنا بتطبيق الـ
            System.out.println( sdf.format(date) );
     
        }
     
    }
    		

    سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

    Current Date: 22/12/15     Current Time: 07:46:05 PM
    		

    هذه النتيجة تتغير حسب الوقت الحالي لجهازك.



    من خلال الجدول السابق يمكنك معرفة أن الكلاس Date يستخدم إفتراضياً الـ format التالية لعرض التاريخ و الوقت: E MMM d hh:mm:ss zzz Y


    مثال

    سنقوم الآن بعرض التاريخ مرتين,الأولى بدون هذه الـ format, و الثانية مع هذه الـ format و لاحظ كيف سنحصل على نفس النتيجة.

    Main.java
    import java.text.SimpleDateFormat;
    import java.util.Date;
     
    public class Main {
     
        public static void main(String[] args) {
     
            // date هنا قمنا بإنشاء تاريخ و وضعناه في الكائن
            Date date = new Date();
     
            // إفتراضياً Date التي يستخدمها الكلاس format جديدة لإظهار الوقت و لكننا إستخدمنا الـ format هنا قمنا بإنشاء
            SimpleDateFormat sdf = new SimpleDateFormat("E MMM d hh:mm:ss zzz Y");
     
            System.out.println( date );               // عليه format بدون أن نطبق أي Date هنا قمنا بعرض الـ
            System.out.println( sdf.format(date) );   // عليه format مع تطبيق الـ Date هنا قمنا بعرض الـ
     
        }
     
    }
    		

    سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

    Wed Dec 23 07:36:44 EET 2015
    Wed Dec 23 07:36:44 EET 2015
    		

    هذه النتيجة تتغير حسب الوقت الحالي لجهازك, لكن التاريخ الأول سيكون نفس التاريخ الثاني دائماً.

    تحديد الـ format بواسطة الدالة printf() في جافا

    يمكنك أيضاً إستخدام الدالة printf() لتعرض التاريخ و الوقت بالشكل الذي تريده.
    كل ما عليك فعله هو وضع %t ثم وضع حرف من الأحرف الموجودة في الجدول التالي.

    الحرف إستخدامه مثال
    c لإظهار التاريخ و الوقت بشكل كامل Thu Dec 24 13:39:33 EET 2015
    F لإظهار التاريخ بنظام ISO 8601 2015-12-24
    D لإظهار التاريخ بنظام U.S. أي month/day/year 12/24/15
    T لإظهار الوقت بنظام 24 ساعة 13:40:43
    r لإظهار الوقت بنظام 12 ساعة 01:40:43 PM
    R لإظهار الوقت بنظام 24 ساعة, و بدون إظهار الثواني 13:40
    Y لإظهار السنة, وتكون مؤلفة من أربع أرقام ( مع إبقاء الأصفار الموجودة على اليسار ) 2015
    y لإظهار آخر رقمين من السنة ( مع إبقاء الأصفار الموجودة على اليسار ) 15
    C لإظهار أول رقمين من السنة ( مع إبقاء الأصفار الموجودة على اليسار ) 20
    B لإظهار إسم الشهر كاملاَ December
    b لإظهار إسم الشهر بشكل مختصر Dec
    m لإظهار الشهر بشكل رقمين ( مع إبقاء الأصفار الموجودة على اليسار ) 02
    d لإظهار اليوم بشكل رقمين ( مع إبقاء الأصفار الموجودة على اليسار ) 12
    e لإظهار اليوم بشكل رقمين ( مع إزالة الأصفار الموجودة على اليسار ) 24
    A لإظهار إسم اليوم بشكل كامل Thursday
    a لإظهار إسم اليوم بشكل مختصر Thu
    j لإظهار رقم اليوم في السنة ( مع إبقاء الأصفار الموجودة على اليسار ) 358
    H لإظهار الساعة بنظام 24 ساعة ( مع إبقاء الأصفار الموجودة على اليسار ), الرقم يكون بين 00 و 23 13
    k لإظهار الساعة بنظام 24 ساعة ( مع إزالة الأصفار الموجودة على اليسار ), الرقم يكون بين 0 و 23 13
    I لإظهار الساعة بنظام 12 ساعة ( مع إبقاء الأصفار الموجودة على اليسار ), الرقم يكون بين 01 و 12 01
    l لإظهار الساعة بنظام 12 ساعة ( مع إزالة الأصفار الموجودة على اليسار ), الرقم يكون بين 1 و 12 1
    M لإظهار الدقائق ( مع إبقاء الأصفار الموجودة على اليسار ) 02
    S لإظهار الثواني ( مع إبقاء الأصفار الموجودة على اليسار ) 09
    L لإظهار الثواني بشكل ثلاث أرقام بالـ milliseconds ( مع إبقاء الأصفار الموجودة على اليسار ) 959
    N لإظهار الثواني بشكل تسعة أرقام بالـ nanoseconds ( مع إبقاء الأصفار الموجودة على اليسار ) 959000000
    p لإظهار إذا كان الوقت قبل الظهر أو بعد الظهر بأحرف صغيرة pm
    z لإظهار الفارق بين وقت الجهاز و الوقت GMT +0200
    Z لإظهار المنطقة الزمنية EET
    s لإظهار عدد الثواني منذ 1970/01/01 00:00:00 GMT 1450958247
    Q لإظهار عدد الثواني بالـ milliseconds منذ 1970/01/01 00:00:00 GMT 1450958247680


    يمكنك أن تعرض التاريخ و الوقت بطرق كثيرة جداً و بعدة أساليب.

    المثال الأول

    سنقوم الآن بعرض التاريخ و الوقت بعدة أشكال بـ format نحددها بالدالة printf().

    Main.java
    import java.util.Date;
     
    public class Main {
     
        public static void main(String[] args) {
     
            // date هنا قمنا بإنشاء تاريخ و وضعناه في الكائن
            Date date = new Date();
     
            // هنا قمنا بعرض التاريخ والوقت
            System.out.printf( "Current Date/time: %tc", date );
     
            // هنا قمنا بعرض التاريخ فقط
            System.out.printf( "\nCurrent Date: %tF", date );
     
            // هنا قمنا بعرض الوقت فقط
            System.out.printf( "\nCurrent time: %tr", date );
     
        }
     
    }
    		

    سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

    Current Date/time: Thu Dec 24 19:03:58 EET 2015
    Current Date: 2015-12-24
    Current time: 07:03:58 PM
    		

    هذه النتيجة تتغير حسب الوقت الحالي لجهازك.



    المثال الثاني

    سنقوم الآن بعرض الوقت بـ format تتألف من ثلاث أحرف H و M و S.

    أولاً سنقوم بوضع الأحرف الثلاثة ( الأول يشير للساعة, الثاني يشير للدقائق, و الثالث يشير للثواني ).

    ثانياً سنقوم بوضع كائن الـ Date لكل حرف منهم.

    يجب وضع فاصلة قبل كل كائن, و هكذا سيفهم المترجم أن الحرف الأول سيظهر لنا الساعة الموجودة في الكائن الأول, و الحرف الثاني سيظهر لنا الدقائق الموجودة في الكائن الثاني, و الحرف الثالث سيظهر لنا الثواني الموجودة في الكائن الثالث.

    Main.java
    import java.util.Date;
     
    public class Main {
     
        public static void main(String[] args) {
     
            // date هنا قمنا بإنشاء تاريخ و وضعناه في الكائن
            Date date = new Date();
     
            // هنا قمنا بعرض الوقت فقط
            System.out.printf( "Current time: %tH:%tM:%tS", date, date, date );
     
        }
     
    }
    		

    سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

    Current time: 19:03:58
    		

    هذه النتيجة تتغير حسب الوقت الحالي لجهازك.

    شرح الكود



    لست مضطراً أن تضع الكائن Date لكل حرف كما فعلنا في المثال السابق.
    يمكنك وضع أرقام index للأحرف التي ستستخدمها لإنشاء format معينة و هكذا سيصبح حجم الـ format أصغر أيضاً.
    يجب وضع الأحرف المستخدمة في الـ format بترتيب معين بحيث تشير للـ Date و الـ String و أي شيء آخر تضعه في هذه الدالة كـ arguments.

    رقم الـ index يتم إضافته مباشرةً بعد الرمز % و نضع بعده الرمز $, ثم الحرف t, ثم الحرف الذي نريده من الأحرف الموجودة في الجدول السابق.


    أمثلة

    • إذا كنا نضع index لـ Date نعتمد هذا الشكل: % index $ t format
          مثال: %2$tA
    • إذا كنا نضع index لـ String نعتمد هذا الشكل: % index $ s
          مثال: %1$s

    المثال الثالث

    سنقوم الآن بعرض التاريخ الحالي.

    سنقوم بوضع قيمة String في الـ index رقم 1.

    سنقوم بوضع كائن الـ Date في الـ index رقم 2.

    يجب وضع فاصلة قبل كل argument, و هكذا سيتم إعطاء كل argument منهم رقم index.

    Main.java
    import java.util.Date;
     
    public class Main {
     
        public static void main(String[] args) {
     
            // date هنا قمنا بإنشاء تاريخ و وضعناه في الكائن
            Date date = new Date();
     
            // هنا قمنا بعرض التاريخ فقط
            System.out.printf( "%1$s %2$tA %2$te-%2$tm-%2$tY", "Today is:", date );
     
        }
     
    }
    		

    سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

    Today is: Friday 25-12-2015
    		

    هذه النتيجة تتغير حسب الوقت الحالي لجهازك.

    شرح الكود



    يمكنك أيضاً إستخدام المؤشر < بدل إستخدام index.
    المؤشر < يعني أن الـ argument الذي تم استخدامه سابقاً سيعاد استخدامه من جديد.


    المثال الرابع

    سنقوم الآن بتنفيذ نفس المثال السابق و لكننا سنستخدم المؤشر < بدل إستخدام index.

    Main.java
    import java.util.Date;
     
    public class Main {
     
        public static void main(String[] args) {
     
            // date هنا قمنا بإنشاء تاريخ و وضعناه في الكائن
            Date date = new Date();
     
            // هنا قمنا بعرض التاريخ فقط
            System.out.printf( "%s %tA %<te-%<tm-%<tY", "Today is:", date );
     
        }
     
    }
    		

    سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

    Today is: Friday 25-12-2015
    		

    هذه النتيجة تتغير حسب الوقت الحالي لجهازك.

    شرح الكود


    تذكر أن هناك طرق كثيرة يمكنك إعتمادها لطباعة التاريخ و الوقت بالشكل الذي تريده, و هناك العديد من الكلاسات الجاهزة في جافا تمكنك من التعامل مع التاريخ و الوقت.

    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب