Java วันที่และเวลา

ก่อนอื่นให้เราทำความเข้าใจพารามิเตอร์ที่ประกอบด้วย วันที่.

วิธีใช้วันที่ใน Java

โดยจะประกอบด้วย –

  • เค้ก ปี (เป็นตัวเลข 2 หรือ 4 หลัก)
  • เค้ก เดือน (เป็นตัวเลข 2 หลัก 3 ตัวอักษรแรกของเดือนหรือทั้งคำของเดือน)
  • เค้ก ข้อมูล (จะเป็นวันที่จริงของเดือน)
  • เค้ก วัน (วันที่ในวันที่กำหนด เช่น อาทิตย์ จันทร์ อังคาร ฯลฯ)

ในส่วนของระบบคอมพิวเตอร์ มีพารามิเตอร์มากมายที่สามารถนำมาใช้เพื่อเชื่อมโยงกับวันที่ เราจะมาดูพารามิเตอร์เหล่านี้ในส่วนหลังของหัวข้อนี้

แสดงวันที่ใน Java

ตอนนี้เรามาดูวิธีการ Java แจ้งวันที่ให้เราทราบ ก่อนอื่นเรามาดูวิธีรับวันที่ปัจจุบัน -

Java มีคลาส Date ภายใต้แพ็คเกจ java.util และมีวิธีการต่างๆ มากมายให้เล่นกับวันที่

คุณสามารถใช้อ็อบเจ็กต์ Date ได้โดยการเรียกใช้คอนสตรัคเตอร์ของคลาส Date ดังนี้:

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());
 }
}

Output:

Wed Nov 29 06:36:22 UTC 2017

ในตัวอย่างด้านบน วันที่แสดงในรูปแบบเริ่มต้น หากเราต้องการแสดงวันที่และเวลาในรูปแบบอื่น ก่อนอื่นให้ทำความเข้าใจกับการจัดรูปแบบวันที่

SimpleDateFormat: แยกวิเคราะห์และจัดรูปแบบวันที่

พวกคุณทุกคนคงเคยเรียนตัวอักษรตั้งแต่สมัยอนุบาล….

ตอนนี้เรามาดู ABC ของรูปแบบวันที่กันดีกว่า

จดหมาย ส่วนประกอบวันที่หรือเวลา ตัวอย่าง
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:XNUMX น. ตามเวลาแปซิฟิก

รูปแบบวันที่ที่เหมาะสมที่ระบุจะเป็น- ปปปป.MM.dd HH:mm:ss zzz

2) รูปแบบวันที่ที่ต้องการ:09:30:00 AM 23-May-2012

รูปแบบวันที่ที่เหมาะสมที่ระบุจะเป็น-hh:mm:ss และ dd-MMM-yyyy

เคล็ดลับ: ระวังการใช้อักษรตัวพิมพ์ใหญ่ หากคุณเข้าใจผิดว่า 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
 }
}

Output:

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

ตัวอย่างการเปรียบเทียบวันที่

ตัวอย่างการเปรียบเทียบวันที่

วิธีเปรียบเทียบวันที่ที่มีประโยชน์มากที่สุดคือการใช้วิธี – comparisonTo()

ให้เราดูตัวอย่างโค้ดด้านล่าง -

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 !!");
  }
 }
}

Output:

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