Java Дата і час проведення
Давайте спочатку розберемося з параметрами, які складаються з a Дата.
В основному він міститиме –
- Команда рік (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()); } }
вихід:
Wed Nov 29 06:36:22 UTC 2017
У наведеному вище прикладі дата показана у форматі за замовчуванням. Якщо ми хочемо відобразити дату й час в іншому форматі, спочатку розберіться з форматуванням дати.
SimpleDateFormat: аналіз і форматування дат
Ви, напевно, вивчили алфавіти у своєму дитячому садку...
Давайте тепер вивчимо азбуку формату дати.
лист | Компонент дати або часу | прикладів |
---|---|---|
G | Позначник ери | AD |
y | рік | 2018 |
M | Місяць у році | Липень або липень або 07 |
w | Тиждень у році | 27 |
W | Тиждень у місяці | 2 |
D | День у році | 189 |
d | День у місяці | 10 |
F | День тижня в місяці | 2 |
E | Назва дня в тижні | вівторок або вт |
u | Номер дня тижня (1 = Monday, …, 7 = неділя) | 1 |
a | Маркер am/pm | 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 PST
Вказаний відповідний формат дати буде: рррр.ММ.дд ГГ:хх:сс zzz
2) Необхідний формат дати:09:30:00 AM 23-May-2012
Вказаний відповідний формат дати буде:год:хх:сс дд-МММ-рррр
Порада: Будьте обережні з великими буквами. Якщо ви сплутаєте 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