1
resposta

Convertendo fuso horário

import java.time.ZonedDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {

        DateTimeFormatter formato = DateTimeFormatter.ofPattern("HH:mm");

        ZonedDateTime horarioBrasil = ZonedDateTime.now(ZoneId.of("America/Sao_Paulo"));
        ZonedDateTime horarioSydney = horarioBrasil.withZoneSameInstant(ZoneId.of("Australia/Sydney"));

        System.out.println("Horário atual no Brasil: " + horarioBrasil.format(formato));
        System.out.println("Horário atual em Sydney: " + horarioSydney.format(formato));
    }
}
1 resposta

Oi, João! Como vai?

Agradeço por compartilhar.

Você utilizou muito bem o ZonedDateTime junto com withZoneSameInstant, o que mostra que entendeu corretamente a conversão entre fusos sem perder o instante original. Isso é um ponto importante quando trabalhamos com datas globais.

Uma dica interessante para o futuro é usar o método plusHours pra simular diferenças de horário manualmente em testes:


ZonedDateTime horario = ZonedDateTime.now();
ZonedDateTime novoHorario = horario.plusHours(3);

System.out.println(novoHorario);

Esse código soma 3 horas ao horário atual, o que pode ajudar a testar cenários de diferença de tempo de forma simples.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!