tl; dr
String output =
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.getDayOfWeek()
.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
java.time
Klasy java.time wbudowane w Javę 8 i nowszych oraz przeniesione wstecz na Javę 6 i 7 oraz na Androida zawierają przydatne DayOfWeek
wyliczenie.
Dni są numerowane zgodnie ze standardową definicją ISO 8601, 1-7 od poniedziałku do niedzieli.
DayOfWeek dow = DayOfWeek.of( 1 );
To wyliczenie zawiera getDisplayName
metodę generowania ciągu przetłumaczonej przetłumaczonej nazwy dnia.
Locale
Obiekt określa język ludzi, do wykorzystania w tłumaczeniu, i określa normy kulturowe zdecydować kwestie takie jak kapitalizacji i interpunkcji.
String output = DayOfWeek.MONDAY.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
Aby uzyskać dzisiejszą datę, użyj LocalDate
zajęć. Pamiętaj, że strefa czasowa ma kluczowe znaczenie, ponieważ w dowolnym momencie data różni się na całym świecie.
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
DayOfWeek dow = today.getDayOfWeek();
String output = dow.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
Pamiętaj, że ustawienie regionalne nie ma nic wspólnego ze strefą czasową. Dwa oddzielne, odrębne kwestie ortogonalne. Możesz chcieć francuskiej prezentacji strefy daty i czasu w Indiach ( Asia/Kolkata
).
Joda-Time
UPDATE: Projekt Joda-Time , obecnie w trybie konserwacji , zaleca migrację do klas java.time .
Biblioteka Joda-Time zapewnia Locale
lokalizację wartości daty i godziny na podstawie sterowania.
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 );
wyjście: samedi
Informacje o java.time
Struktura java.time jest wbudowana w Javę 8 i nowsze. Klasy te kłopotliwe zastąpić stary starszych klas Date-Time, takich jak java.util.Date
, Calendar
, i SimpleDateFormat
.
Projekt Joda-Time , obecnie w trybie konserwacji , zaleca migrację do klas java.time .
Aby dowiedzieć się więcej, zobacz samouczek Oracle . I przeszukaj Stack Overflow, aby znaleźć wiele przykładów i wyjaśnień. Specyfikacja to JSR 310 .
Skąd wziąć klasy java.time?
- Java SE 8 i SE 9 i nowsze
- Wbudowany.
- Część standardowego interfejsu API języka Java z dołączoną implementacją.
- Java 9 dodaje kilka drobnych funkcji i poprawek.
- Java SE 6 i SE 7
- Wiele funkcji java.time jest przenoszonych z powrotem do Javy 6 i 7 w ThreeTen-Backport .
- Android