Час для сучасної відповіді.
java.time та ThreeTenABP
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("d/M/u");
String validUntil = "1/1/1990";
LocalDate validDate = LocalDate.parse(validUntil, dateFormatter);
LocalDate currentDate = LocalDate.now(ZoneId.of("Pacific/Efate"));
if (currentDate.isAfter(validDate)) {
System.out.println("Catalog is outdated");
}
Коли я запустив цей код саме зараз, вихід:
Каталог застарів
Оскільки це не завжди однакова дата у всіх часових поясах, дайте чіткий часовий пояс LocalDate.now. Якщо ви хочете, щоб каталог закінчувався одночасно у всіх часових поясах, ви можете датиZoneOffset.UTC , якщо ви повідомляєте користувачів, що використовуєте UTC.
Я використовую java.time, сучасний API дати та часу Java. Класи дати і час , які ви використовували, Calendar, SimpleDateFormatі Date, все погано розроблені і до щастя , давно застаріли. Також, незважаючи на назву, а Dateне є дата, а момент часу. Одним із наслідків цього є: хоча сьогодні 15 лютого 2019 року, новостворений Dateоб’єкт вже після (тобто не рівний) Dateоб’єкта від розбору 15/02/2019. Це декого бентежить. Всупереч цьому, сучасною LocalDateє дата без часу доби (і без часового поясу), тому два, LocalDateщо представляють сьогоднішню дату, завжди будуть рівними.
Питання: Чи можна використовувати java.time на Android?
Так, java.time чудово працює на старих та новіших пристроях Android. Для цього просто потрібно принаймні Java 6 .
- У Java 8 і новіших пристроях Android (від рівня API 26) вбудований сучасний API.
- У Java 6 та 7 отримайте ThreeTen Backport, опору сучасних класів (ThreeTen для JSR 310; див. Посилання внизу).
- На (старшому) Android використовують Android-версію ThreeTen Backport. Це називається ThreeTenABP. І переконайтеся, що ви імпортуєте дати та часові класи
org.threeten.bpз підпакетів.
Посилання
Calendar,SimpleDateFormat,Dateабо будь-який з інших довгих застарілих дати і часу Java класів. Замість цього використовуйтеjava.timeсучасний API дати та часу Java . Так, ви можете використовувати його на Android. Для старих Android див. Як використовувати ThreeTenABP в Android Project .