أضافت Java 8 واجهات LocalDate و LocalTime. لماذا تحتاج إلى تطوير مجموعة جديدة من واجهات برمجة التطبيقات التي تعالج التواريخ والأوقات؟ لأن java.util.date القديمة يصعب استخدامها.
Java.Util.date شهر يبدأ من 0 ، يناير هو 0 ، ديسمبر هو 11 ، إنه أمر غير طبيعي! تم تغيير java.time.localdate إلى التعداد لمدة شهرين وأسبوع ، لذلك من المستحيل استخدامه بشكل غير صحيح.
لا java.util.date ولا التبسيط آمن من مؤشرات الترابط ، في حين أن LocalDate و LocalTime هما نفس السلسلة الأساسية ، وليس فقط آمنًا للموضوع ، ولكن لا يمكن تعديلها أيضًا.
java.util.date هي "واجهة عالمية" تحتوي على تواريخ ووقت وميلي ثانية. إذا كنت ترغب فقط في استخدام java.util.date لتخزين التواريخ ، أو تخزين الوقت فقط ، فعندئذ فقط تعرف أي أجزاء من البيانات مفيدة وأي أجزاء من البيانات غير مفيدة. في Java 8 الجديدة ، يتم تقسيم التواريخ والأوقات بوضوح إلى محلي و محلي. لا يمكن أن يحتوي LocalDate على الوقت ولا يمكن أن يحتوي المحلي على تواريخ. بالطبع ، يمكن أن يشمل محلي الوقت التاريخ والوقت.
السبب في أن الواجهة الجديدة أفضل هو أنها تأخذ في الاعتبار تشغيل التاريخ والوقت ، وغالبًا ما يحدث عند الدفع للأمام أو للخلف لبضعة أيام. يتطلب استخدام java.util.date مع التقويم الكثير من التعليمات البرمجية للكتابة ، وقد لا يتمكن المطورون العاديون من كتابته بشكل صحيح.
محلي
دعونا نرى كيفية استخدام LocalDate الجديد:
// احصل على التاريخ الحالي: localdate اليوم = localDate.Now () ؛ //-> 2014-12-24 // احصل على التاريخ وفقًا للسنة والشهر واليوم ، ديسمبر هو 12: محلي crisismas = localdate.of (2014 ، 12 ، 25) ؛ //-> 2014-12-25 // احصل على التاريخ الحالي وفقًا للسلسلة: localdate endoffeb = localdate.parse ("2014-02-28") ؛ . localdate.parse ("2014-02-29") ؛ // لا يمكن تمرير تاريخ غير صالح: datetimeparsexception: تاريخ غير صالح
غالبًا ما يتم تحويل تحويل التاريخ ، مثل:
// خذ اليوم الأول من هذا الشهر: localdate firstdayofthismonth = اليوم. // 2014-12-01 // خذ اليوم الثاني من هذا الشهر: localdate secondofthismonth = اليوم. withdayofmonth (2) ؛ // 2014-12-02 // خذ اليوم الأخير من هذا الشهر ، ولم تعد بحاجة إلى حساب ما إذا كان 28 أو 29 أو 30 أو 31: localdate lastdayofthismonth = اليوم. . // يصبح 2015-01-01 // خذ الاثنين الأول في يناير 2015 ، ويستخدم هذا الحساب التقويم لقتل العديد من خلايا الدماغ: localdate firstmondayof2015 = localdate.parse ("2015-01-01"). // 2015-01-05 المحلية
المحلية تحتوي فقط على الوقت. كيف يمكنني فقط تمثيل الوقت مع java.util.date من قبل؟ الجواب هو ، التظاهر بتجاهل التاريخ.
يحتوي المحلية على مللي ثانية:
localtime الآن = localtime.now () ؛ // 11: 09: 09.240
قد ترغب في مسح المللي ثانية:
localtime الآن = localtime.now (). withnano (0)) ؛ // 11:09:09
وقت البناء بسيط للغاية أيضًا:
localtime Zero = localtime.of (0 ، 0 ، 0) ؛ // 00:00:00
localtime mid = localtime.parse ("12:00:00") ؛ // 12:00:00
يتم التعرف على الوقت أيضًا بتنسيق ISO ، ولكن يمكن تحديد التنسيقات الثلاثة التالية:
• 12: 00
• 12: 01: 02
• 12: 01: 02.345
JDBC
سوف يربط أحدث رسم خرائط JDBC نوع تاريخ قاعدة البيانات بالنوع الجديد من Java 8:
SQL -> Java
--------------------------------------
التاريخ -> localdate
الوقت -> المحلية
الطابع الزمني -> محلي
لن يكون هناك أي حالات أخرى يتم فيها تعيين بعض أجزاء التاريخ أو الوقت إلى java.util.date حيث يكون جزء من التاريخ أو الوقت 0.
ما سبق هو طريقة التعامل مع التواريخ والوقت في Java 8 الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!