tl; dr
String output =
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.getDayOfWeek()
.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
java.time
Die in Java 8 und höher integrierten und auf Java 6 & 7 und Android zurückportierten java.time-Klassen enthalten die praktische DayOfWeek
Aufzählung.
Die Tage sind gemäß der Standarddefinition ISO 8601 von Montag bis Sonntag mit 1-7 nummeriert.
DayOfWeek dow = DayOfWeek.of( 1 );
Diese Aufzählung enthält die getDisplayName
Methode zum Generieren einer Zeichenfolge des lokalisierten übersetzten Namens des Tages.
Das Locale
Objekt spezifiziert eine menschliche Sprache, die bei der Übersetzung verwendet werden soll, und spezifiziert kulturelle Normen, um Fragen wie Großschreibung und Zeichensetzung zu entscheiden.
String output = DayOfWeek.MONDAY.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
Verwenden Sie die LocalDate
Klasse , um das heutige Datum zu erhalten . Beachten Sie, dass eine Zeitzone von entscheidender Bedeutung ist, da das Datum für jeden Moment weltweit variiert.
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
DayOfWeek dow = today.getDayOfWeek();
String output = dow.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
Beachten Sie, dass das Gebietsschema nichts mit der Zeitzone zu tun hat. Zwei separate orthogonale Probleme. Vielleicht möchten Sie eine französische Präsentation einer in Indien in Zonen aufgeteilten Datums- und Uhrzeit ( Asia/Kolkata
).
Joda-Zeit
UPDATE: Das Joda-Time- Projekt, das sich jetzt im Wartungsmodus befindet , empfiehlt die Migration zu den Klassen java.time .
Die Joda-Time- Bibliothek bietet eine Locale
gesteuerte Lokalisierung von Datums- und Uhrzeitwerten.
DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
DateTime now = DateTime.now( zone );
Locale locale = Locale.CANADA_FRENCH;
DateTimeFormatter formatterUnJourQuébécois = DateTimeFormat.forPattern( "EEEE" ).withLocale( locale );
String output = formatterUnJourQuébécois.print( now );
System.out.println("output: " + output );
Ausgabe: samedi
Über java.time
Das java.time- Framework ist in Java 8 und höher integriert. Diese Klassen verdrängen die lästigen alten Legacy - Datum-Zeit - Klassen wie java.util.Date
, Calendar
, & SimpleDateFormat
.
Das Joda-Time- Projekt, das sich jetzt im Wartungsmodus befindet , empfiehlt die Migration zu den Klassen java.time .
Weitere Informationen finden Sie im Oracle-Lernprogramm . Suchen Sie im Stapelüberlauf nach vielen Beispielen und Erklärungen. Die Spezifikation ist JSR 310 .
Woher bekomme ich die java.time-Klassen?
- Java SE 8 und SE 9 und höher
- Eingebaut.
- Teil der Standard-Java-API mit einer gebündelten Implementierung.
- Java 9 fügt einige kleinere Funktionen und Korrekturen hinzu.
- Java SE 6 und SE 7
- Android