Текущее время и дата
Как узнать текущую дату и время в разных часовых поясах.
LocalTime
Из данного примера видно как узнать местное время, используя класс LocateTime.
Этот класс представляет информацию о текущем времени без учета часового пояса, и не включает информацию о дате. Формат представления данных часы-минуты-секунды.
Данный класс является неизменным (immutable) и показывает только время.
Для того, чтобы узнать время в определенной часовой зоне, в качестве параметра необходимо передать ее ID, который определяем по карте часовых зон, которая приведена ниже.
package java1; import java.time.Clock; import java.time.LocalTime; import java.time.ZoneId; public class Test { public static void main(String[] args) { LocalTime time1 = LocalTime.now(); System.out.println(time1); LocalTime time2 = LocalTime.now(Clock.systemDefaultZone()); System.out.println(time2); System.out.println(LocalTime.now(ZoneId.of("Europe/Paris"))); System.out.println(LocalTime.now(ZoneId.of("America/Caracas"))); System.out.println(LocalTime.now(ZoneId.of("Australia/Sydney"))); } }
Карта часовых зон:
- EST — -05:00
- HST — -10:00
- MST — -07:00
- ACT — Australia/Darwin
- AET — Australia/Sydney
- AGT — America/Argentina/Buenos_Aires
- ART — Africa/Cairo
- AST — America/Anchorage
- BET — America/Sao_Paulo
- BST — Asia/Dhaka
- CAT — Africa/Harare
- CNT — America/St_Johns
- CST — America/Chicago
- CTT — Asia/Shanghai
- EAT — Africa/Addis_Ababa
- ECT — Europe/Paris
- IET — America/Indiana/Indianapolis
- IST — Asia/Kolkata
- JST — Asia/Tokyo
- MIT — Pacific/Apia
- NET — Asia/Yerevan
- NST — Pacific/Auckland
- PLT — Asia/Karachi
- PNT — America/Phoenix
- PRT — America/Puerto_Rico
- PST — America/Los_Angeles
- SST — Pacific/Guadalcanal
- VST — Asia/Ho_Chi_Minh
В результате видим:
20:41:29.029 20:41:29.116 19:41:29.118 13:11:29.119 03:41:29.120
LocalDate
java.time.LocalDate класс представляет информацию о текущей дате, не содержит информацию о времени или часовой зоне.
package java1; import java.time.Clock; import java.time.LocalDate; import java.time.ZoneId; public class Test { public static void main(String[] args) { LocalDate time1 = LocalDate.now(); System.out.println(time1); LocalDate time2 = LocalDate.now(Clock.systemDefaultZone()); System.out.println(time2); System.out.println(LocalDate.now(ZoneId.of("Europe/Paris"))); System.out.println(LocalDate.now(ZoneId.of("America/Caracas"))); System.out.println(LocalDate.now(ZoneId.of("Australia/Sydney"))); } }
Результат выполнения программы
2015-09-22 2015-09-22 2015-09-22 2015-09-22 2015-09-23
LocalDateTime
java.time.LocalDateTime представляет комбинацию текущего времени и текущей даты, в формате 2015-09-22T21:58:58.931, без параметра не содержит информацию о часовой зоне.
package java1; import java.time.Clock; import java.time.LocalDateTime; import java.time.ZoneId; public class Test { public static void main(String[] args) { LocalDateTime time1 = LocalDateTime.now(); System.out.println(time1); LocalDateTime time2 = LocalDateTime.now(Clock.systemDefaultZone()); System.out.println(time2); System.out.println(LocalDateTime.now(ZoneId.of("Europe/Paris"))); System.out.println(LocalDateTime.now(ZoneId.of("America/Caracas"))); System.out.println(LocalDateTime.now(ZoneId.of("Australia/Sydney"))); } }
2015-09-22T21:58:58.931 2015-09-22T21:58:59.005 2015-09-22T20:58:59.006 2015-09-22T14:28:59.006 2015-09-23T04:58:59.007