Пакунки java.time, java.util, java.sql і java.text містять класи для представлення дати та часу. Наступні класи важливі для роботи з датою в Java.
API дати/часу Java 8
Починаючи з Java 8, Java представила новий API дати й часу. Пакет java.time містить класи дати й часу Java 8.
- Клас java.time.LocalDate
- клас java.time.LocalTime
- Клас java.time.LocalDateTime
- клас java.time.MonthDay
- Клас java.time.OffsetTime
- Клас java.time.OffsetDateTime
- Клас java.time.Clock
- java.time.ZonedDateTime клас
- клас java.time.ZoneId
- Клас java.time.ZoneOffset
- java.time.Year клас
- клас java.time.YearMonth
- Клас java.time.Period
- java.time.Клас тривалості
- java.time.Миттєвий клас
- java.time.DayOfWeek enum
- java.time.Month перелік
Класичний API дати/часу
Але класичний або старий Java Date API також корисний. Давайте подивимося список класичних класів Дата і Час.
- Клас java.util.Date
- Клас java.sql.Date
- Клас java.util.Calendar
- java.util.GregorianCalendar клас
- Клас java.util.TimeZone
- java.sql.Клас часу
- Клас java.sql.Timestamp
Форматування дати та часу
Ми можемо форматувати дату й час у Java за допомогою таких класів:
API дати й часу Java
Java забезпечує функціональність дати та часу за допомогою двох пакетів java.time та java.util. Пакет java.time представлено в Java 8, і нещодавно представлені класи намагаються подолати недоліки застарілих класів java.util.Date і java.util.Calendar.
Класичні класи API дати та часу
Основними класами до випуску Java 8 були:
скільки клавіш має клавіатура
Java.lang.System: Клас надає метод currentTimeMillis(), який повертає поточний час у мілісекундах. Він показує поточну дату та час у мілісекундах з 1 січня 1970 року.
java.util.Date: Використовується для показу конкретного моменту часу з одиницею мілісекунди.
java.util.Calendar: Це абстрактний клас, який надає методи для перетворення між екземплярами та маніпулювання полями календаря різними способами.
java.text.SimpleDateFormat: Це клас, який використовується для форматування та аналізу дат у попередньо визначений спосіб або за шаблоном, визначеним користувачем.
java.util.TimeZone: Він представляє зміщення часового поясу, а також визначає літній час.
Недоліки існуючих API дати/часу
Новий API дати і часу в Java 8
Новий API дати допомагає подолати недоліки, згадані вище, із застарілими класами. Він включає наступні класи:
java.time.LocalDate: Він представляє рік-місяць-день у календарі ISO і корисний для представлення дати без часу. Його можна використовувати для представлення інформації лише про дату, як-от дата народження або дата весілля.
java.time.LocalTime: Це стосується лише часу. Це корисно для представлення часу доби, наприклад часу перегляду фільмів або часу відкриття та закриття місцевої бібліотеки.
java.time.LocalDateTime: Він обробляє як дату, так і час без часового поясу. Це комбінація LocalDate і LocalTime.
java.time.ZonedDateTime: Він поєднує клас LocalDateTime з інформацією про зону, наданою в класі ZoneId. Він представляє повну позначку дати та часу разом із інформацією про часовий пояс.
java.time.OffsetTime: Він обробляє час із відповідним зміщенням часового поясу від Гринвіча/UTC без ідентифікатора часового поясу.
java.time.OffsetDateTime: Він обробляє дату й час із відповідним зміщенням часового поясу від Гринвіча/UTC без ідентифікатора часового поясу.
java.time.Clock : Він забезпечує доступ до поточного моменту, дати та часу в будь-якому часовому поясі. Хоча використання класу Clock є необов’язковим, ця функція дозволяє перевірити ваш код для інших часових поясів або за допомогою фіксованого годинника, де час не змінюється.
java.time.Instant : Він представляє початок наносекунди на часовій шкалі (з моменту EPOCH) і корисний для створення мітки часу для представлення машинного часу. Момент, що настає перед епохою, має негативне значення, а момент, що настає після епохи, має позитивне значення.
java.time.Duration : Різниця між двома моментами і вимірюється в секундах або наносекундах і не використовує конструкції на основі дати, такі як роки, місяці та дні, хоча клас надає методи, які перетворюють на дні, години та хвилини.
java.time.Period : Він використовується для визначення різниці між датами в значеннях на основі дати (роки, місяці, дні).
java.time.ZoneId : Він визначає ідентифікатор часового поясу та надає правила для перетворення між Instant і LocalDateTime.
java.time.ZoneOffset : Він описує зміщення часового поясу від часу Гринвіча/UTC.
java.time.format.DateTimeFormatter : Він пропонує різні попередньо визначені форматувальники, або ми можемо визначити свій власний. Він має метод parse() або format() для аналізу та форматування значень дати й часу.