[RESOLVIDO] Duvida Classe calendar

6 respostas
programaçãojava
J

Seguinte galera, tenho uma classe Calendar só que ela está retornando o valor em 24 horas normal…

Calendar c = Calendar.getInstance();
    c.set(Calendar.HOUR_OF_DAY, 16); 
    c.set(Calendar.MINUTE, 00);
    c.set(Calendar.SECOND, 0);
    c.set(Calendar.MILLISECOND, 0);
    
    Date horaAgendada = c.getTime();
    
    System.out.println(horaAgendada);

Preciso que em vez de retornar:

Tue Apr 24 16:00:00 BRT 2018

Retorne o valor:

4:00 pm

6 Respostas

D
c.set(Calendar.HOUR, 16);
J

Ele retornou isso aqui:

Wed Apr 25 04:00:00 BRT 2018

Porém esse horário equivale as 4 da manhã não é ?

S

Tue Apr 24 16:00:00 BRT 2018 é apenas o toString() do objeto Date.
Utilize um DateFormat para imprimir a String no formato desejado.

J

Usando o DateFormat não dará certo, pois preciso passar como date em um parâmetro esse horário!

S

Então não com o que se preocupar, é só passar o objeto Date e pronto!
Como eu disse o "Wed Apr 25 04:00:00 BRT 2018" é somente o resultado do toString() do objeto Date.
O Date por si só não tem um formato, ele apenas encapsula um long que representa um instante de tempo, nada além disso.

J

Só usar o DateFormat.

Criado 24 de abril de 2018
Ultima resposta 26 de abr. de 2018
Respostas 6
Participantes 3