Jak mogę znaleźć DateFormat
dla danego Locale
?Format daty Java dla lokalizacji
Odpowiedz
DateFormat.getDateInstance(int,Locale)
Na przykład:
import static java.text.DateFormat.*;
DateFormat f = getDateInstance(SHORT, Locale.ENGLISH);
Następnie można użyć tego obiektu do formatu Date
s:
String d = f.format(new Date());
Jeśli rzeczywiście chcą poznać podstawowy wzór (np yyyy-MMM-dd
), a następnie, ponieważ otrzymasz obiekt z powrotem: SimpleDateFormat
:
SimpleDateFormat sf = (SimpleDateFormat) f;
String p1 = sf.toPattern();
String p2 = sf.toLocalizedPattern();
Nie sądzę, że istnieje gwarancja, że DateFormat.getDateInstance (...) zwróci obiekt SimpleDateFormat, więc rzutowanie wyniku na SimpleDateFormat może być niebezpieczne (może nie działać na innej implementacji Java niż implementacja Sun, lub może nawet nie pracuje nad inną wersją implementacji Sun). – Jesper
Jest to bardzo prawdziwe - nie ma żadnej gwarancji. Ale będzie to "SimpleDateFormat" w praktyce –
FYI, kłopotliwe stare klasy czasu i daty, takie jak 'java.text.SimpleDateFormat' są teraz [starsze] (https://en.wikipedia.org/wiki/Legacy_system), zastąpione przez klasy [java.time] (https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html). Zobacz [Tutorial by Oracle] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html). –
Czy istnieje inny sposób (bez użycia rzutowania SimpleDateFormat) do pobrania domyślnego wzorca dla danego obiektu Locale?
Utwórz nowy wpis, jeśli chcesz zadać pytanie lub zadać pytanie w sekcji komentarzy. Są one zarezerwowane dla odpowiedzi na oryginalny post. – hfontanez
tl; dr
DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL)
.withLocale(Locale.CANADA_FRENCH);
java.time
Oryginalne klasy date-time są teraz Legacy i zostały wyparte przez klasy java.time.
Urządzenie DateTimeFormatter
ma prosty sposób na automatyczną lokalizację przez Locale
podczas generowania ciągu znaków w celu przedstawienia wartości daty i godziny. Określ FormatStyle
, aby wskazać długość wyjścia (w skrócie lub nie).
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL);
f = f.withLocale(Locale.CANADA_FRENCH);
Zdobądź aktualną chwilę. Zauważ, że Locale
i strefa czasowa nie mają ze sobą nic wspólnego. Jedna określa prezentację, druga dostosowuje się do konkretnej wall-clock time. W związku z tym możesz mieć strefę czasową w Nowej Zelandii z japońską strefą czasową Locale
lub w tym przypadku strefą czasową w Indiach z prezentacją sformułowaną dla osoby czytającej Québécois.
ZoneId z = ZoneId.of("Asia/Kolkata");
ZonedDateTime zdt = ZonedDateTime.now(z);
Wygeneruj ciąg za pomocą tego lokalizującego obiektu formatującego.
String output = zdt.format(f);
O java.time
Ramy java.time jest wbudowana w Java 8 i późniejszych. Klasy te zastępują kłopotliwe stare klasy z datami, takie jak java.util.Date
, Calendar
, & SimpleDateFormat
.
Projekt Joda-Time, teraz w maintenance mode, zaleca migrację do klas java.time. Aby uzyskać więcej informacji, zobacz
. I wyszukaj Stack Overflow dla wielu przykładów i objaśnień. Specyfikacja to JSR 310.
Gdzie można uzyskać lekcje java.time?
- Java SE 8, Java SE 9, a później
- wbudowanej.
- Część standardowego interfejsu API języka Java z pakietem implementacji.
- Java 9 dodaje kilka drobnych funkcji i poprawek.
- Java SE 6 i Java SE 7
- Znaczna część funkcjonalności java.time jest back-przeniesiony do Java 6 & 7 w ThreeTen-Backport.
- Android
- Projekt ThreeTenABP dostosowuje ThreeTen-backportu (wymienione powyżej) Androida szczegółowo.
- Zobacz How to use ThreeTenABP….
Projekt ThreeTen-Extra rozciąga java.time z dodatkowych zajęć. Ten projekt jest poligonem wskazującym na możliwe przyszłe dodatki do java.time. Możesz znaleźć tutaj kilka użytecznych klas, takich jak Interval
, YearWeek
, YearQuarter
i more.
- 1. Format daty JAVA
- 2. przełączanie lokalizacji daty
- 3. Jak ustawić format lokalizacji z datepicker?
- 4. Format daty zepsuty w .net 4.0 dla uk format
- 5. Zmodyfikowana - od daty Format
- 6. Format strefy czasowej dla daty emisji węglowej
- 7. Formatowanie daty na czytelny dla człowieka format
- 8. Format pola daty Solr
- 9. Apache poi format daty
- 10. Jak zmienić format daty w wyboru daty
- 11. GSON - Format daty
- 12. Format daty Knockout.js
- 13. MySQL - Format kolumny daty
- 14. DateTime.Parse format daty
- 15. Format daty DB2
- 16. Format daty Dzień roku
- 17. Format daty z łańcucha?
- 18. Format daty i czasu
- 19. format daty w węźle.JS
- 20. Format daty w RangeValidator
- 21. format daty z moment.js
- 22. Format wyświetlania daty Datatables.net
- 23. Format daty Mongoose
- 24. angularjs: liczba Format według lokalizacji
- 25. Ten sam format daty w kilku lokalizacjach
- 26. Konwersja daty JavaScript na format daty ASP.NET
- 27. Format daty zmienia rok mojej daty
- 28. jquery ui datepicker Format daty
- 29. Szyny: Przyjazny dla człowieka format daty dla pola tekstowego
- 30. Sprawdzone metody Java dla lokalizacji plików konfiguracyjnych
FYI, kłopotliwe stare klasy daty i czasu, takie jak 'DateFormat' są teraz [starszeństwem] (https://pl.wikipedia.org/wiki/Legacy_system), wypierane przez [java.time] (https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html) klas. Zobacz [Tutorial by Oracle] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html). –