Classe Java ZonedDateTime

A classe Java ZonedDateTime é uma representação imutável de uma data e hora com um fuso horário. Ele herda a classe Object e implementa a interface ChronoZonedDateTime.

A classe ZonedDateTime é usada para armazenar todos os campos de data e hora, com uma precisão de nanossegundos, e um fuso horário com um deslocamento de zona usado para lidar com datas e horas locais ambíguas.


Declaração de classe Java ZonedDateTime

Vamos ver a declaração da classe java.time.ZonedDateTime.

 public final class ZonedDateTime extends Object implements Temporal, ChronoZonedDateTime, Serializable  

Métodos de Java ZonedDateTime

Método Descrição
Formato de string (formatador DateTimeFormatter) É usado para formatar esta data e hora usando o formatador especificado.
int get(campoTemporalField) É usado para obter o valor do campo especificado desta data e hora como um int.
ZoneId getZone() É usado para obter o fuso horário, como 'Ásia/Kolkata'.
ZonedDateTime withZoneSameInstant (zona ZoneId) É utilizado para retornar uma cópia desta data-hora com fuso horário diferente, retendo o instante.
ZonedDateTime estático agora() É usado para obter a data e hora atuais do relógio do sistema no fuso horário padrão.
ZonedDateTime estático de (data LocalDate, hora LocalTime, zona ZoneId) É usado para obter uma instância de ZonedDateTime de uma data e hora local.
ZonedDateTime menos (long amountToSubtract, unidade TemporalUnit) É usado para retornar uma cópia desta data e hora com o valor especificado subtraído.
ZonedDateTime plus (long amountToAdd, unidade TemporalUnit) É usado para retornar uma cópia desta data e hora com o valor especificado adicionado.

Exemplo de classe 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); } }  
Teste agora

Saída:

 2016-10-05T08:20:10+05:30[Asia/Kolkata]  

Classe Java ZonedDateTime Exemplo: of() e 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); } }  
Teste agora

Saída:

 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]  

Classe Java ZonedDateTime Exemplo: getZone()

 import java.time.ZonedDateTime; public class ZonedDateTimeExample3{ public static void main(String[] args) { ZonedDateTime zone =ZonedDateTime.now(); System.out.println(zone.getZone()); } }  
Teste agora

Saída:

 Asia/Kolkata  

Classe Java ZonedDateTime Exemplo: 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); } }  
Teste agora

Saída:

 2016-09-15T12:54:01.354+05:30[Asia/Kolkata]  

Classe Java ZonedDateTime Exemplo: 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); } }  
Teste agora

Saída:

 2017-05-25T12:56:12.417+05:30[Asia/Kolkata]