No momento, a hora é exibida como 13:35. No entanto, eu quero exibir no formato de 12 horas com AM / PM, ou seja, 13:35 em vez de 13:35.
O código atual é como abaixo
private static final int FOR_HOURS = 3600000;
private static final int FOR_MIN = 60000;
public String getTime(final Model model) {
SimpleDateFormat formatDate = new SimpleDateFormat("HH:mm a");
formatDate.setTimeZone(userContext.getUser().getTimeZone());
model.addAttribute("userCurrentTime", formatDate.format(new Date()));
final String offsetHours = String.format("%+03d:%02d", userContext.getUser().getTimeZone().getRawOffset()
/ FOR_HOURS, Math.abs(userContext.getUser().getTimeZone().getRawOffset() % FOR_HOURS / FOR_MIN));
model.addAttribute("offsetHours",
offsetHours + " " + userContext.getUser().getTimeZone().getDisplayName(Locale.ROOT));
return "systemclock";
}
java
date-format
Ronan
fonte
fonte
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
Respostas:
A maneira mais fácil de obtê-lo usando o padrão de data -
h:mm a
, ondeFragmento de código :
Leia mais sobre documentação - SimpleDateFormat java 7
fonte
Usa isto
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
Documentos em Java para SimpleDateFormat
fonte
DateTimeFormatter
classe, por JSR 310.use em
"hh:mm a"
vez de"HH:mm a"
. Aquihh
para o formato de 12 horas eHH
para o formato de 24 horas.Demonstração ao vivo
fonte
Saída: 11-set-13 12.25.15.375 PM
fonte
h é usado para os horários AM / PM (1-12).
H é usado por 24 horas (1-24).
a é o marcador AM / PM
m é minuto em hora
Nota: Dois hs imprimirão um zero à esquerda: 13:13. Um h será impresso sem o zero inicial: 13:13.
Parece que basicamente todo mundo já me venceu, mas eu discordo
fonte
fonte
Usando o Java 8:
A saída está no
AM/PM
formato.fonte
Locale
chamandowithLocale
no objeto formatador para determinar a linguagem humana e as normas culturais a serem usadas na geração doAM
/PM
text.Basta substituir a declaração abaixo e ela funcionará.
fonte
Se você quiser o horário atual com AM, PM no Android, use
Se você quiser hora atual com am, pm
OU
Do nível 26 da API
fonte
SimpleDateFormat
aula desatualizada e notoriamente problemática . Pelo menos não como a primeira opção. E não sem nenhuma reserva. Hoje, temos muito melhorjava.time
, a moderna API de data e hora de Java e suasDateTimeFormatter
.DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH)
(ou outro local de língua inglesa).Isso exibirá a data e a hora
fonte
fonte
tl; dr
Permita que as modernas classes java.time do JSR 310 gerem automaticamente texto localizado, em vez de codificar com código de 12 horas e AM / PM.
Localizar automaticamente
Em vez de insistir no relógio de 12 horas com AM / PM, convém permitir que o java.time seja localizado automaticamente. Ligue
DateTimeFormatter.ofLocalizedTime
.Para localizar, especifique:
FormatStyle
para determinar quanto tempo ou abreviação a string deve ter.Locale
para determinar:Aqui, obtemos a hora atual do dia, como visto em um fuso horário específico. Em seguida, geramos texto para representar esse tempo. Localizamos o idioma francês na cultura do Canadá e o idioma inglês na cultura dos EUA.
Veja este código executado ao vivo em IdeOne.com .
fonte
fonte
Para colocar o formato atual da data e hora do celular em
você pode mostrá-lo para o seu
Activity
,Fragment
,CardView
,ListView
em qualquer lugar, usandoTextView
fonte
fonte
Você pode usar SimpleDateFormat para isso.
Espero que isso ajude você.
fonte