Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução

/**
 * Você trabalha em uma empresa global e precisa agendar reuniões com colegas da Austrália.
 * Como os horários variam de acordo com o fuso horário, você precisa de um sistema que
 * converta automaticamente o horário local para o horário de Sydney.
 *
 * Crie um programa que converta o horário atual do sistema (fuso horário padrão) para o
 * fuso horário de Sydney (Australia/Sydney) e exiba apenas as horas e os minutos.
 * Dica: Utilize o método withZoneSameInstant() para realizar a conversão.
 * Saída esperada:
 * Horário atual no sistema: 12:00
 * Horário atual em Sydney: 22:00
 */

package com.github.lucasdevrj.exercicios;

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

public class ConvertendoHorarioParaOutroFuso {
    public static void main(String[] args) {
        ZonedDateTime horarioAtualSistema = ZonedDateTime.now();
        ZoneId australia = ZoneId.of("Australia/Sydney");
        ZonedDateTime horarialAtualAustralia = horarioAtualSistema.withZoneSameInstant(australia);
        DateTimeFormatter horarioFormatado = DateTimeFormatter.ofPattern("HH:mm");

        String horarios = String.format(
                "Horário atual no sistema: %s\nHorário atual em Sydney: %s",
                horarioAtualSistema.format(horarioFormatado),
                horarialAtualAustralia.format(horarioFormatado)
        );

        System.out.println(horarios);
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Beleza?

1 resposta

Oi, Lucas, como vai?

Sua solução atende corretamente ao que foi solicitado na atividade. Você utilizou ZonedDateTime, definiu o fuso com ZoneId.of("Australia/Sydney") e fez a conversão usando withZoneSameInstant(), que é justamente o método indicado para preservar o mesmo instante em diferentes fusos horários.

A formatação com DateTimeFormatter.ofPattern("HH:mm") também está adequada para exibir apenas horas e minutos. Além disso, a construção da mensagem com String.format() deixou a saída organizada e fácil de ler.

Parabéns pela resolução e por compartilhar seu código. Continue trazendo suas soluções para discussão. O fórum está à disposição para apoiar seu aprendizado.

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