У цьому підручнику ви дізнаєтесь -
- Відображення поточної дати в Java
- SimpleDateFormat: Дати синтаксичного аналізу та форматування
- Приклад порівняння дат
Давайте спочатку зрозуміємо параметри, що складаються з дати .
Він в основному міститиме -
- Рік (в 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 constructorDate objDate = new Date();// Display the Date & Time using toString()System.out.println(objDate.toString());}}
Вихід:
Wed Nov 29 06:36:22 UTC 2017
У наведеному вище прикладі дати, показаної у форматі за замовчуванням, якщо ми хочемо показати дату та час в іншому форматі, спочатку зрозумійте Форматування дати.
SimpleDateFormat: Дати синтаксичного аналізу та форматування
Ви всі, напевно, вивчили алфавіти у своєму дитячому садку
...Давайте тепер вивчимо ABC у форматі дати.
Лист | Компонент дати або часу | Приклади |
---|---|---|
G | Позначник ери | Н.е. |
р | Рік | 2018 рік |
М | Місяць у році | Липень або липень або 07 |
w | Тиждень у році | 27 |
W | Тиждень у місяці | 2 |
D | День у році | 189 |
d | День у місяці | 10 |
F | День тижня в місяці | 2 |
Е | Назва дня в тижні | Вівторок або вівторок |
u | Номер дня тижня (1 = понеділок,…, 7 = неділя) | 1 |
a | Маркер Am / pm | ПМ |
H | Година в день (0-23) | 0 |
k | Година в день (1-24) | 24 |
К | Година вранці / вечора (0-11) | 0 |
h | Година вранці / вечора (1-12) | 12 |
м | Хвилина в годині | 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 PST
Відповідний вказаний формат дати буде рррр.MM.dd HH: mm: ss zzz
2) Необхідний формат дати: 09:30:00 23 травня 2012 року
Вказаний відповідний формат дати буде : hh: mm: ss a 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 objDateSystem.out.println(objDate);String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is SpecifiedSimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format objectSystem.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date}}
Вихід:
Wed Nov 29 06:31:41 UTC 201706: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-1981Date2 : 12-10-2012Date 1 occurs before Date 2