تحتوي حزم java.time وjava.util وjava.sql وjava.text على فئات لتمثيل التاريخ والوقت. تعتبر الفصول التالية مهمة للتعامل مع التاريخ في Java.
جافا 8 التاريخ / الوقت API
قدمت Java واجهة برمجة تطبيقات جديدة للتاريخ والوقت منذ Java 8. تحتوي حزمة java.time على فئات Java 8 للتاريخ والوقت.
- فئة java.time.LocalDate
- فئة java.time.LocalTime
- فئة java.time.LocalDateTime
- فئة java.time.MonthDay
- فئة java.time.OffsetTime
- فئة java.time.OffsetDateTime
- فئة java.time.Clock
- فئة java.time.ZonedDateTime
- فئة java.time.ZoneId
- فئة java.time.ZoneOffset
- java.time.Year الطبقة
- فئة java.time.YearMonth
- java.time.Period الطبقة
- java.time.Duration فئة
- java.time.Instant الطبقة
- java.time.DayOfWeek التعداد
- java.time.Month التعداد
واجهة برمجة تطبيقات التاريخ/الوقت الكلاسيكية
لكن Java Date API الكلاسيكية أو القديمة مفيدة أيضًا. دعونا نرى قائمة فئات التاريخ والوقت الكلاسيكية.
- java.util.Date فئة
- java.sql.Date فئة
- فئة java.util.Calendar
- فئة java.util.GregorianCalendar
- فئة java.util.TimeZone
- java.sql.فئة الوقت
- فئة java.sql.Timestamp
تنسيق التاريخ والوقت
يمكننا تنسيق التاريخ والوقت في Java باستخدام الفئات التالية:
جافا التاريخ والوقت واجهات برمجة التطبيقات
توفر Java وظيفة التاريخ والوقت بمساعدة الحزمتين java.time وjava.util. تم تقديم الحزمة java.time في Java 8، وتحاول الفئات المقدمة حديثًا التغلب على أوجه القصور في فئات java.util.Date وjava.util.Calendar القديمة.
فئات API التاريخ والوقت الكلاسيكية
كانت الفئات الأساسية قبل إصدار Java 8 هي:
مجموعة ديناميكية في جافا
Java.lang.النظام: توفر الفئة الأسلوب currentTimeMillis() الذي يُرجع الوقت الحالي بالمللي ثانية. يُظهر التاريخ والوقت الحاليين بالمللي ثانية بدءًا من 1 يناير 1970.
java.util.التاريخ: يتم استخدامه لإظهار لحظة زمنية محددة بوحدة المللي ثانية.
java.util.التقويم: إنها فئة مجردة توفر طرقًا للتحويل بين المثيلات ومعالجة حقول التقويم بطرق مختلفة.
java.text.SimpleDateFormat: إنها فئة تُستخدم لتنسيق التواريخ وتحليلها بطريقة محددة مسبقًا أو نمط محدد من قبل المستخدم.
java.util.TimeZone: وهو يمثل إزاحة المنطقة الزمنية، ويحدد أيضًا التوقيت الصيفي.
عيوب واجهات برمجة تطبيقات التاريخ/الوقت الحالية
واجهة برمجة تطبيقات التاريخ والوقت الجديدة في Java 8
تساعد واجهة برمجة تطبيقات التاريخ الجديد في التغلب على العيوب المذكورة أعلاه مع الفئات القديمة. ويشمل الفئات التالية:
java.time.LocalDate: إنه يمثل سنة وشهرًا ويومًا في تقويم ISO وهو مفيد لتمثيل تاريخ بدون وقت. يمكن استخدامه لتمثيل معلومات التاريخ فقط مثل تاريخ الميلاد أو تاريخ الزفاف.
java.time.LocalTime: انها تتعامل في الوقت المناسب فقط. وهو مفيد لتمثيل الوقت البشري من اليوم، مثل أوقات الأفلام، أو أوقات فتح وإغلاق المكتبة المحلية.
java.time.LocalDateTime: يتعامل مع التاريخ والوقت، بدون منطقة زمنية. إنه مزيج من LocalDate مع LocalTime.
java.time.ZonedDateTime: فهو يجمع بين فئة LocalDateTime ومعلومات المنطقة الواردة في فئة ZoneId. إنه يمثل طابعًا زمنيًا كاملاً للتاريخ بالإضافة إلى معلومات المنطقة الزمنية.
java.time.OffsetTime: فهو يتعامل مع الوقت بإزاحة المنطقة الزمنية المقابلة من Greenwich/UTC، بدون معرف المنطقة الزمنية.
java.time.OffsetDateTime: فهو يتعامل مع التاريخ والوقت مع إزاحة المنطقة الزمنية المقابلة من Greenwich/UTC، بدون معرف المنطقة الزمنية.
جافا.تايم.الساعة: ويوفر الوصول إلى اللحظة الحالية والتاريخ والوقت في أي منطقة زمنية معينة. على الرغم من أن استخدام فئة الساعة اختياري، إلا أن هذه الميزة تسمح لنا باختبار التعليمات البرمجية الخاصة بك لمناطق زمنية أخرى، أو باستخدام ساعة ثابتة، حيث لا يتغير الوقت.
java.time.Instant : إنه يمثل بداية النانو ثانية على المخطط الزمني (منذ EPOCH) وهو مفيد لإنشاء طابع زمني لتمثيل وقت الآلة. اللحظة التي تحدث قبل العصر لها قيمة سالبة، واللحظة التي تحدث بعد العصر لها قيمة موجبة.
java.time.Duration : الفرق بين لحظتين ويتم قياسه بالثواني أو النانو ثانية ولا يستخدم بنيات تعتمد على التاريخ مثل السنوات والأشهر والأيام، على الرغم من أن الفصل يوفر طرقًا للتحويل إلى أيام وساعات ودقائق.
جافا.الوقت.الفترة: يتم استخدامه لتحديد الفرق بين التواريخ في القيم المستندة إلى التاريخ (السنوات والأشهر والأيام).
java.time.ZoneId : فهو ينص على معرف المنطقة الزمنية ويوفر قواعد للتحويل بين Instant و LocalDateTime.
java.time.ZoneOffset : وهو يصف إزاحة المنطقة الزمنية من توقيت غرينتش/التوقيت العالمي المنسق.
java.time.format.DateTimeFormatter : يأتي مع العديد من المنسقات المحددة مسبقًا، أو يمكننا تحديد التنسيق الخاص بنا. يحتوي على طريقة parse() أو format() لتحليل وتنسيق قيم التاريخ والوقت.