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


