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

دعونا أولا نفهم المعلمات التي تتكون من أ التاريخ.

كيفية استخدام التاريخ في Java

وسوف يحتوي في المقام الأول على -

  • أكثر من عام (إما 2 أو 4 أرقام)
  • أكثر من شهر (إما مكونة من رقمين، أو أول 2 أحرف من الشهر، أو كلمة الشهر بأكملها).
  • أكثر من تاريخ (سيكون التاريخ الفعلي للشهر).
  • أكثر من يوم (اليوم في التاريخ المحدد - مثل الأحد، الاثنين، الثلاثاء، إلخ.)

فيما يتعلق بأنظمة الكمبيوتر، هناك عدد كبير جدًا من المعلمات التي يمكن استخدامها للربط بين تاريخين. وسنرى هذه المعلمات في الأجزاء اللاحقة من هذا الموضوع.

عرض التاريخ في Java

الآن دعونا نرى كيف Java زوِّدنا بالتاريخ. أولاً، سنرى كيفية الحصول على التاريخ الحالي-

Java يوفر فئة Date ضمن حزمة java.util، وتوفر الحزمة عدة طرق للعب بالتاريخ.

يمكنك استخدام كائن التاريخ عن طريق استدعاء مُنشئ فئة التاريخ كما يلي:

import java.util.Date;
class Date_Ex1 {
 public static void main(String args[]) {
  // Instantiate a Date object by invoking its constructor
  Date objDate = new Date();
  // Display the Date & Time using toString()
  System.out.println(objDate.toString());
 }
}

الإخراج:

Wed Nov 29 06:36:22 UTC 2017

في المثال أعلاه، يظهر التاريخ بالتنسيق الافتراضي، إذا أردنا إظهار التاريخ والوقت بتنسيق آخر، ففهم أولاً تنسيق التاريخ.

SimpleDateFormat: تحليل التواريخ وتنسيقها

لا بد أنكم جميعاً تعلمتم الحروف الهجائية في روضة الأطفال الخاصة بكم....

دعونا الآن نتعلم ABC لتنسيق التاريخ.

OMG مكون التاريخ أو الوقت أمثلة
G مُحدّد العصر AD
y السنة 2018
M الشهر في السنة يوليو أو يوليو أو 07
w أسبوع في السنة 27
W أسبوع في الشهر 2
D اليوم في السنة 189
d اليوم في الشهر 10
F يوم من الأسبوع في الشهر 2
E اسم اليوم في الأسبوع الثلاثاء أو الثلاثاء
u عدد أيام الأسبوع (1 = Monday، …، 7 = الأحد) 1
a علامة صباح / مساءً PM
H ساعة في اليوم (0-23) 0
k ساعة في اليوم (1-24) 24
K الساعة في صباحًا / مساءً (0-11) 0
h الساعة في صباحًا / مساءً (1-12) 12
m دقيقة بالساعة 30
s الثانية في دقيقة 55
S ميلي ثانية واحدة 978
z المنطقة زمنية الوقت الباسيفيكي القياسي؛ PST؛ GMT-08: 00
Z المنطقة زمنية -0800
X المنطقة زمنية -08 أو -0800 أو -08:00

لا تقلق، لست بحاجة إلى تذكر كل هذه الأمور، حيث يمكن الرجوع إليها في أي وقت تحتاج فيه إلى تنسيق تاريخ معين.

كيفية استخدام SimpleDateFormat؟

Java يوفر فئة تسمى SimpleDateFormat والتي تسمح لك بتنسيق وتحليل التواريخ وفقًا لمتطلباتك.

يمكنك استخدام الأحرف المذكورة أعلاه لتحديد التنسيق-

فمثلا:

1) تنسيق التاريخ المطلوب: 2012.10.23 20:20:45 بتوقيت المحيط الهادئ

سيكون تنسيق التاريخ المناسب المحدد هو- yyyy.MM.dd HH:mm:ss zzz

2) تنسيق التاريخ المطلوب:09:30:00 AM 23-May-2012

سيكون تنسيق التاريخ المناسب المحدد هو-hh:mm:ss يوم-ط-ط-س س س س

تلميح: كن حذرا مع الحروف الكبيرة. إذا أخطأت بين M وm، فستحصل على نتائج غير مرغوب فيها!

دعونا نتعلم هذا مع مثال التعليمات البرمجية.

import java.text.SimpleDateFormat;
import java.util.Date;
class TestDates_Format {
 public static void main(String args[]) {
  Date objDate = new Date(); // Current System Date and time is assigned to objDate
  System.out.println(objDate);
  String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified
  SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object
  System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date
 }
}

الإخراج:

Wed Nov 29 06:31:41 UTC 2017
06:31:41 AM 29-Nov-2017

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

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

الطريقة الأكثر فائدة لمقارنة التواريخ هي استخدام الطريقة – CompareTo()

دعونا نلقي نظرة على مقتطف الكود أدناه-

import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;

class TestDates_Compare {
 public static void main(String args[]) throws ParseException {

  SimpleDateFormat objSDF = new SimpleDateFormat("dd-mm-yyyy");
  Date dt_1 = objSDF.parse("20-08-1981");
  Date dt_2 = objSDF.parse("12-10-2012");

  System.out.println("Date1 : " + objSDF.format(dt_1));
  System.out.println("Date2 : " + objSDF.format(dt_2));

  if (dt_1.compareTo(dt_2) > 0) {
   System.out.println("Date 1 occurs after Date 2");
  } // compareTo method returns the value greater than 0 if this Date is after the Date argument.
  else if (dt_1.compareTo(dt_2) < 0) {
   System.out.println("Date 1 occurs before Date 2");
  } // compareTo method returns the value less than 0 if this Date is before the Date argument;
  else if (dt_1.compareTo(dt_2) == 0) {
   System.out.println("Both are same dates");
  } // compareTo method returns the value 0 if the argument Date is equal to the second Date;
  else {
   System.out.println("You seem to be a time traveller !!");
  }
 }
}

الإخراج:

Date1 : 20-08-1981
Date2 : 12-10-2012
Date 1 occurs before Date 2

تلخيص هذه التدوينة بـ: