Java ZonedDateTime клас
Класът ZonedDateTime на Java е неизменно представяне на дата-час с часова зона. Той наследява класа Object и имплементира интерфейса ChronoZonedDateTime.
Класът ZonedDateTime се използва за съхраняване на всички полета за дата и час с точност до наносекунди и часова зона с отместване на зоната, използвана за обработка на двусмислени местни дати и часове.
Декларация на клас Java ZonedDateTime
Нека да видим декларацията на класа java.time.ZonedDateTime.
public final class ZonedDateTime extends Object implements Temporal, ChronoZonedDateTime, Serializable
Методи на Java ZonedDateTime
| Метод | Описание |
|---|---|
| Формат на низ (DateTimeFormatter форматиране) | Използва се за форматиране на тази дата-час с помощта на посочения форматиращ инструмент. |
| int get (поле TemporalField) | Използва се за получаване на стойността на посоченото поле от тази дата-час като int. |
| ZoneId getZone() | Използва се за получаване на часовата зона, като например „Азия/Колката“. |
| ZonedDateTime withZoneSameInstant(ZoneId зона) | Използва се за връщане на копие на тази дата-час с различна часова зона, като се запазва момента. |
| статичен ZonedDateTime сега() | Използва се за получаване на текущата дата-час от системния часовник в часовата зона по подразбиране. |
| статичен ZonedDateTime от (дата на LocalDate, време на LocalTime, ZoneId зона) | Използва се за получаване на екземпляр на ZonedDateTime от локална дата и час. |
| ZonedDateTime минус (дълго сума за изваждане, единица TemporalUnit) | Използва се за връщане на копие от тази дата-час с извадена посочената сума. |
| ZonedDateTime плюс (дълго сума за добавяне, единица TemporalUnit) | Използва се за връщане на копие от тази дата-час с добавената посочена сума. |
Java ZonedDateTime клас Пример
import java.time.ZonedDateTime; public class ZonedDateTimeExample1{ public static void main(String[] args) { ZonedDateTime zone = ZonedDateTime.parse('2016-10-05T08:20:10+05:30[Asia/Kolkata]'); System.out.println(zone); } } Тествайте сега Изход:
2016-10-05T08:20:10+05:30[Asia/Kolkata]
Java ZonedDateTime клас Пример: of() и withZoneSameInstant()
import java.time.*; public class ZonedDateTimeExample2{ public static void main(String[] args) { LocalDateTime ldt = LocalDateTime.of(2017, Month.JANUARY, 19, 15, 26); ZoneId india = ZoneId.of('Asia/Kolkata'); ZonedDateTime zone1 = ZonedDateTime.of(ldt, india); System.out.println('In India Central Time Zone: ' + zone1); ZoneId tokyo = ZoneId.of('Asia/Tokyo'); ZonedDateTime zone2 = zone1.withZoneSameInstant(tokyo); System.out.println('In Tokyo Central Time Zone:' + zone2); } } Тествайте сега Изход:
In India Central Time Zone: 2017-01-19T15:26+05:30[Asia/Kolkata] In Tokyo Central Time Zone:2017-01-19T18:56+09:00[Asia/Tokyo]
Java ZonedDateTime клас Пример: getZone()
import java.time.ZonedDateTime; public class ZonedDateTimeExample3{ public static void main(String[] args) { ZonedDateTime zone =ZonedDateTime.now(); System.out.println(zone.getZone()); } } Тествайте сега Изход:
Asia/Kolkata
Java ZonedDateTime клас Пример: minus()
import java.time.Period; import java.time.ZonedDateTime; public class ZonedDateTimeExample4 { public static void main(String[] args) { ZonedDateTime zone= ZonedDateTime.now(); ZonedDateTime m = zone.minus(Period.ofDays(126)); System.out.println(m); } } Тествайте сега Изход:
2016-09-15T12:54:01.354+05:30[Asia/Kolkata]
Java ZonedDateTime клас Пример: plus()
import java.time.*; public class ZonedDateTimeExample5{ public static void main(String[] args) { ZonedDateTime zone= ZonedDateTime.now(); ZonedDateTime p = zone.plus(Period.ofDays(126)); System.out.println(p); } } Тествайте сега Изход:
2017-05-25T12:56:12.417+05:30[Asia/Kolkata]