Você pode definir AM/PM em uma data GregorianCalendar ou é algo que você só pode obter
-
12-12-2019 - |
Pergunta
Eu dei uma olhada na API Java sobre o GregorianCalendar e não vi nenhuma maneira de definir o AM/PM em seu construtor.Você pode definir AM/PM em uma data GregorianCalendar ou é algo que você só pode obter usando um método get no calendário.Ele lida com tudo isso automaticamente.Estou procurando pegar am/pm e exibi-lo em meu toString para uma classe que possui um objeto de data.Eu usaria o método get no calendário para conseguir isso.Eu entendo que am/pm é um int que é 0 ou 1.
Também queria saber se todas as horas são 24 horas em gregoriano e ele determina automaticamente am e pm?
Solução
Calendar.get(Calendar.HOUR);
Fornece a hora (0-12) para o formato AM/PM.
Calendar.get(Calendar.HOUR_OF_DAY);
Fornece a hora variando de 0 a 24.
Ele faz a conversão sozinho.Você não precisa contar.
cal.set( Calendar.AM_PM, Calendar.AM )
Vontade/poderia mudar o ponto de tempo que este objeto de calendário representa.(Se for 13h, você terá 1h depois).Isto é verdade para GregorianCalendar
(ver comentário à pergunta de Peter Cetinski).
A propósito/dica, você deve usar um DateFormat
produzir seu formato preferido.
Outras dicas
Calendar cal = new GreogorianCalendar();
cal.set( Calendar.AM_PM, Calendar.AM );
Simply I did this :
Calendar calendar = new GregorianCalendar();
int seconds = calendar.get(Calendar.SECOND);
int minutes = calendar.get(Calendar.MINUTE);
int hour = calendar.get(Calendar.HOUR);
int am_pm = calendar.get(Calendar.AM_PM);
String ampm = "ampm";
if (am_pm == 0) {
ampm = "AM";
} else {
ampm = "PM";
}
jLabel1.setText(hour + ":" + minutes + ":" + seconds + " " + ampm);