tl; д-р
String output =
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.getDayOfWeek()
.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
java.time
Класи java.time, вбудовані в Java 8 і пізніші версії, а також перенесені назад на Java 6 і 7 та Android включають зручний DayOfWeek
перелік.
Дні нумеруються відповідно до стандартного визначення ISO 8601, 1-7 для понеділка-неділі.
DayOfWeek dow = DayOfWeek.of( 1 );
Цей перелік включає getDisplayName
метод для створення рядка з локалізованою перекладеною назвою дня.
Locale
Об'єкт вказує на людську мову , який буде використовуватися в перекладі, і задає культурні норми, вирішувати такі питання, як капіталізація і пунктуації.
String output = DayOfWeek.MONDAY.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
Щоб отримати сьогоднішню дату, використовуйте LocalDate
клас. Зверніть увагу, що часовий пояс має вирішальне значення, оскільки для будь-якого моменту дата змінюється по всьому світу.
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
DayOfWeek dow = today.getDayOfWeek();
String output = dow.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
Майте на увазі, що локаль не має нічого спільного з часовим поясом. Дві окремі окремі ортогональні проблеми. Вам може знадобитися французька презентація дати та часу, зонованого в Індії ( Asia/Kolkata
).
Joda-Time
ОНОВЛЕННЯ: Проект Joda-Time , який зараз перебуває в режимі обслуговування , радить перейти до класів java.time .
Бібліотека Joda-Time забезпечує Locale
-driven локалізацію значень дати та часу.
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 );
вихід: самаді
Про java.time
Java.time каркас вбудований в Java 8 і пізніших версій. Ці класи витісняти неприємні старі застарілі класи дати і часу , такі як java.util.Date
, Calendar
, і SimpleDateFormat
.
Проект Joda-Time , який зараз перебуває в режимі обслуговування , радить перейти на класи java.time .
Щоб дізнатись більше, див. Підручник Oracle . І шукайте в Stack Overflow багато прикладів та пояснень. Специфікація - JSR 310 .
Де отримати класи java.time?
- Java SE 8 і SE 9 і пізніших версій
- Вбудований.
- Частина стандартного Java API із комплексною реалізацією.
- Java 9 додає деякі незначні функції та виправлення.
- Java SE 6 і SE 7
- Значна частина функцій java.time переноситься назад на Java 6 і 7 у ThreeTen-Backport .
- Android