Você pode definir AM/PM em uma data GregorianCalendar ou é algo que você só pode obter

StackOverflow https://stackoverflow.com//questions/9667080

  •  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?

Foi útil?

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);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top