Android: как получить текущий день недели (понедельник и т. Д.) На языке пользователя?

Я хочу знать, каков текущий день недели (понедельник, вторник …) на локальном языке пользователя. Например, «Лунди» «Марди» и т. Д., Если пользователь является французским.

Я прочитал этот пост, но он возвращает только int, а не строку со словом на языке пользователя: какой самый простой способ получить текущий день недели в Android?

В более общем плане, как вы получаете все дни недели и все месяцы года, написанные на языке пользователя?

Я думаю, что это возможно, так как, например, в повестке дня Google указаны дни и месяцы, написанные на локальном языке пользователя.

Благодаря !!

Используйте SimpleDateFormat для форматирования дат и времени в удобочитаемую строку, относящуюся к языку пользователя.

Небольшой пример, чтобы получить текущий день недели (например, «понедельник») :

SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); Date d = new Date(); String dayOfTheWeek = sdf.format(d); 

Попробуй это:

 int dayOfWeek = date.get(Calendar.DAY_OF_WEEK); String weekday = new DateFormatSymbols().getShortWeekdays()[dayOfWeek]; 

Чтобы сделать вещи короче, вы можете использовать это:

 android.text.format.DateFormat.format("EEEE", date); 

который вернет день недели в виде строки.

Hers’s, что я использовал, чтобы получить имена дня ( 0-6 означает monday - sunday ):

 public static String getFullDayName(int day) { Calendar c = Calendar.getInstance(); // date doesn't matter - it has to be a Monday // I new that first August 2011 is one ;-) c.set(2011, 7, 1, 0, 0, 0); c.add(Calendar.DAY_OF_MONTH, day); return String.format("%tA", c); } public static String getShortDayName(int day) { Calendar c = Calendar.getInstance(); c.set(2011, 7, 1, 0, 0, 0); c.add(Calendar.DAY_OF_MONTH, day); return String.format("%ta", c); } 

Я знаю, что уже ответил, но кто ищет «Пт», как это

для Пт –

 SimpleDateFormat sdf = new SimpleDateFormat("EEE"); Date d = new Date(); String dayOfTheWeek = sdf.format(d); 

и кто хочет полную строку даты, они могут использовать 4E в пятницу

В пятницу-

 SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); Date d = new Date(); String dayOfTheWeek = sdf.format(d); 

Наслаждаться…

Попробуй это…

 //global declaration private TextView timeUpdate; Calendar calendar; ....... timeUpdate = (TextView) findViewById(R.id.timeUpdate); //initialize in onCreate() ....... //in onStart() calendar = Calendar.getInstance(); //date format is: "Date-Month-Year Hour:Minutes am/pm" SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy HH:mm a"); //Date and time String currentDate = sdf.format(calendar.getTime()); //Day of Name in full form like,"Saturday", or if you need the first three characters you have to put "EEE" in the date format and your result will be "Sat". SimpleDateFormat sdf_ = new SimpleDateFormat("EEEE"); Date date = new Date(); String dayName = sdf_.format(date); timeUpdate.setText("" + dayName + " " + currentDate + ""); 

В результате … введите описание изображения здесь

счастливое кодирование …..

ТЛ; др

 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, include удобное перечисление DayOfWeek .

Дни пронумерованы в соответствии со стандартом ISO 8601, 1-7 для понедельника по воскресенье.

 DayOfWeek dow = DayOfWeek.of( 1 ); 

Это перечисление включает метод getDisplayName для генерации строки локализованного переведенного имени дня.

Объект Locale указывает язык человека, который будет использоваться в переводе, и указывает культурные нормы для решения таких вопросов, как капитализация и пунктуация.

 String output = DayOfWeek.MONDAY.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ; 

Чтобы получить сегодняшнюю дату, используйте class 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 времени

UPDATE: проект Joda-Time , находящийся в режиме обслуживания , советует перейти на classы java.time .

Библиотека Joda-Time предоставляет локализованную локализацию значений даты и времени.

 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 ); 

выход: samedi


О java.time

Рамка java.time встроена в Java 8 и более поздние версии . Эти classы вытесняют неприятные старые устаревшие classы времени, такие как java.util.Date , Calendar и SimpleDateFormat .

Проект Joda-Time , теперь в режиме обслуживания , советует перейти на classы java.time .

Чтобы узнать больше, ознакомьтесь с учебным пособием Oracle . И поиск Stack Overflow для многих примеров и объяснений. Спецификация – JSR 310 .

Где можно получить classы java.time?

  • Java SE 8 и SE 9 и более поздние версии
    • Встроенный.
    • Часть стандартного Java API с интегрированной реализацией.
    • Java 9 добавляет некоторые незначительные функции и исправления.
  • Java SE 6 и SE 7
    • Большая часть функциональных возможностей java.time включена обратно в Java 6 и 7 в ThreeTen-Backport .
  • Android
    • Проект ThreeTenABP адаптирует ThreeTen-Backport (упомянутый выше) специально для Android.
    • См. Раздел Как использовать ThreeTenABP ….

Извините за поздний ответ. Но это будет работать правильно.

 daytext=(textview)findviewById(R.id.day); Calender c=Calender.getInstance(); SimpleDateFormat sd=new SimpleDateFormat("EEEE"); String dayofweek=sd.format(c.getTime()); daytext.setText(dayofweek); 
  • Я хотел бы установить мои переменные в верхней части моего classа, а не в методе
  • Как отключить SSLv3 в android для HttpsUrlConnection?
  • Не удалось открыть Android 6.0: EACCES (Permission denied)
  • Как получить данные из каждого динамически созданного EditText в Android?
  • Код будет возвращать 0.0, 0.0 GPS-координату при бросании NullPointerException
  • Записывать телефонные звонки на Android-телефоне?
  • math.random, только генерируя 0?
  • JSON Array итерация в Android / Java
  • Проблемы с импортом проекта в Android Studio в отношении ActionBarSherlock
  • Разница между списком и массивом
  • Есть ли способ автоматически генерировать геттеры и сеттеры в Eclipse?
  • Interesting Posts

    Android (JSONObject) Как я могу пройти через плоский объект JSON, чтобы получить каждый ключ и каждое значение

    Что быстрее: несколько одиночных INSERT или один многострочный INSERT?

    В чем разница между локальным адресом ссылки и IP-адресом в частном адресном пространстве?

    Соглашения об именах баз данных, таблицах и столбцах?

    Unity Physics2D.Raycast поражает себя

    Настройки DNS ISPConfig

    Почему getRealPath () возвращает null при развертывании с .war-файлом?

    Экстремальное охлаждение сервера

    Пространство в качестве ключа-модификатора XKB

    Строка состояния не исчезнет

    Включить динамический контент, содержащий tags / компоненты JSF из streamа

    Выключение программного обеспечения не работает в Windows 8

    Где Linux размещает сообщения о загрузке?

    Как переключить кодировку текста в UTF-8 с помощью emacs?

    Оптимальное размещение и направление вентилятора для воздушного охлаждения компьютера

    Давайте будем гением компьютера.