1
resposta

Conversão de fuso

Em vez de usar o format no sout eu declarei uma nova variável que formata o horario atual para o novo formato, e aí sim chamei elas no sout.

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

public class Principal {
public static void main(String[] args) {
ZonedDateTime horarioSistema = ZonedDateTime.now();
ZonedDateTime horarioSydney = horarioSistema.withZoneSameInstant(ZoneId.of("Australia/Sydney"));

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH-mm");
    String horarioSistemaFormatado = horarioSistema.format(formatter);
    String horarioSydneyFormatado = horarioSydney.format(formatter);

    System.out.println("Horário atual do sistema:" + horarioSistemaFormatado);
    System.out.println("Horário atual em Sydney:" + horarioSydneyFormatado );
}

}

1 resposta

Oi, Pedro! Como vai?

Agradeço por compartilhar.

Sua solução ficou bem organizada, porque você separou a formatação em variáveis antes de exibir no System.out.println(). Isso deixa o código mais legível e facilita a manutenção, já que horarioSistemaFormatado e horarioSydneyFormatado deixam claro o que cada valor representa.

Dica: no DateTimeFormatter, use "HH:mm" em vez de "HH-mm" caso queira exibir o horário no formato mais comum, como 14:30. Continue praticando essa separação de responsabilidades no código, pois ela ajuda bastante em projetos maiores.

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