Obecnie czas jest wyświetlany jako 13:35. Jednak chcę wyświetlać jako format 12-godzinny z AM / PM, tj. 13:35 zamiast 13:35
Aktualny kod jest jak poniżej
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
źródło
źródło
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
Odpowiedzi:
Najłatwiejszy sposób na uzyskanie tego za pomocą wzorca daty -
h:mm a
gdzieFragment kodu:
Przeczytaj więcej na temat dokumentacji - SimpleDateFormat java 7
źródło
Użyj tego
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
Dokumenty Java dla SimpleDateFormat
źródło
DateTimeFormatter
klasy według JSR 310.użyj
"hh:mm a"
zamiast"HH:mm a"
. Tutajhh
dla formatu 12-godzinnego iHH
24-godzinnego.Demo na żywo
źródło
Wyjście: 11 września 13 13.25.15.375 PM
źródło
h stosuje się dla czasów AM / PM (1-12).
H stosuje się przez 24 godziny (1-24).
a jest znacznikiem AM / PM
m jest minuta za godzinę
Uwaga: Dwie godziny wydrukują wiodące zero: 13:13. Jedna godzina zostanie wydrukowana bez wiodącego zera: 13:13.
Wygląda na to, że wszyscy już mnie pobili, ale dygresuję
źródło
źródło
Za pomocą Java 8:
Dane wyjściowe są w
AM/PM
formacie.źródło
Locale
, wywołującwithLocale
ten obiekt formatera, aby określić ludzki język i normy kulturowe, które mają być używane przy generowaniuAM
/PM
tekstu.Wystarczy zamienić poniższe oświadczenie i będzie działać.
źródło
Jeśli chcesz aktualny czas z AM, PM w Android użytku
Jeśli chcesz aktualny czas z am, pm
LUB
Od poziomu API 26
źródło
SimpleDateFormat
klasy. Przynajmniej nie jako pierwsza opcja. I nie bez zastrzeżeń. Dzisiaj mamy o wiele lepszejava.time
, nowoczesne API daty i godziny Java oraz jegoDateTimeFormatter
.DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH)
(lub innego języka anglojęzycznego).Spowoduje to wyświetlenie daty i godziny
źródło
źródło
tl; dr
Pozwól nowoczesnym klasom JSR 310 na java.time automatycznie generować zlokalizowany tekst, a nie na sztywno 12-godzinny zegar i AM / PM.
Automatycznie zlokalizuj
Zamiast nalegać na 12-godzinny zegar z AM / PM, możesz pozwolić java.time automatycznie się dla ciebie zlokalizować. Zadzwoń
DateTimeFormatter.ofLocalizedTime
.Aby zlokalizować, określ:
FormatStyle
aby określić, jak długi lub skracany powinien być łańcuch.Locale
określić:Tutaj otrzymujemy aktualną porę dnia widoczną w określonej strefie czasowej. Następnie generujemy tekst reprezentujący ten czas. Lokalizujemy na język francuski w kulturze kanadyjskiej, a następnie język angielski w kulturze amerykańskiej.
Zobacz ten kod uruchamiany na żywo w IdeOne.com .
źródło
źródło
Aby wprowadzić bieżący format daty i godziny telefonu komórkowego
można pokazać go do
Activity
,Fragment
,CardView
,ListView
nigdzie za pomocąTextView
źródło
źródło
Możesz do tego użyć SimpleDateFormat.
Mam nadzieję, że to ci pomoże.
źródło