Какой самый простой способ получить текущий день недели в Android?

Какой самый простой способ получить текущий день недели в Android?

Solutions Collecting From Web of "Какой самый простой способ получить текущий день недели в Android?"

Используйте класс Android Calendar .

 Calendar calendar = Calendar.getInstance(); int day = calendar.get(Calendar.DAY_OF_WEEK); switch (day) { case Calendar.SUNDAY: // Current day is Sunday case Calendar.MONDAY: // Current day is Monday case Calendar.TUESDAY: // etc. } 
 Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime(); // 3 letter name form of the day System.out.println(new SimpleDateFormat("EE", Locale.ENGLISH).format(date.getTime())); // full name form of the day System.out.println(new SimpleDateFormat("EEEE", Locale.ENGLISH).format(date.getTime())); 

Результат (на сегодня):

 Сидел
 суббота

UPDATE: java8

 LocalDate date = LocalDate.now(); DayOfWeek dow = date.getDayOfWeek(); System.out.println("Enum = " + dow); String dayName = dow.getDisplayName(TextStyle.FULL, Locale.ENGLISH); System.out.println("FULL = " + dayName); dayName = dow.getDisplayName(TextStyle.FULL_STANDALONE, Locale.ENGLISH); System.out.println("FULL_STANDALONE = " + dayName); dayName = dow.getDisplayName(TextStyle.NARROW, Locale.ENGLISH); System.out.println("NARROW = " + dayName); dayName = dow.getDisplayName(TextStyle.NARROW_STANDALONE, Locale.ENGLISH); System.out.println("NARROW_STANDALONE = " + dayName); dayName = dow.getDisplayName(TextStyle.SHORT, Locale.ENGLISH); System.out.println("SHORT = " + dayName); dayName = dow.getDisplayName(TextStyle.SHORT_STANDALONE, Locale.ENGLISH); System.out.println("SHORT_STANDALONE = " + dayName); 

Результат (на сегодня):

 Enum = SATURDAY FULL = Saturday FULL_STANDALONE = Saturday NARROW = S NARROW_STANDALONE = 6 SHORT = Sat SHORT_STANDALONE = Sat 
 Calendar.getInstance().get(Calendar.DAY_OF_WEEK) 

или

 new GregorianCalendar().get(Calendar.DAY_OF_WEEK); 

Точно так же, как в Java, ничего особенного для Android.

 public String weekdays[] = new DateFormatSymbols(Locale.ITALIAN).getWeekdays(); Calendar c = Calendar.getInstance(); Date date = new Date(); c.setTime(date); int dayOfWeek = c.get(Calendar.DAY_OF_WEEK); System.out.println(dayOfWeek); System.out.println(weekdays[dayOfWeek]); 

Если вы не хотите использовать класс Calendar вообще, вы можете использовать этот

 String weekday_name = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(System.currentTimeMillis()); 

Т. Е. Результат,

 "Sunday" 

Используя оба метода, вы легко найдете, если не будете использовать семь дней (currentdaynumber + 7-1)% 7, (currentdaynumber + 7-2)% 7 ….. upto 6

 public static String getDayName(int day){ switch(day){ case 0: return "Sunday"; case 1: return "Monday"; case 2: return "Tuesday"; case 3: return "Wednesday"; case 4: return "Thursday"; case 5: return "Friday"; case 6: return "Saturday"; } return "Worng Day"; } public static String getCurrentDay(){ SimpleDateFormat dayFormat = new SimpleDateFormat("EEEE", Locale.US); Calendar calendar = Calendar.getInstance(); return dayFormat.format(calendar.getTime()); } 

Вот мой простой подход, чтобы получить текущий день

 public String getCurrentDay(){ String daysArray[] = {"Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday", "Saturday"}; Calendar calendar = Calendar.getInstance(); int day = calendar.get(Calendar.DAY_OF_WEEK); return daysArray[day]; } 

Поскольку DAY_OF_WEEK в классе GregorianCalender является статическим полем, вы можете получить к нему доступ напрямую, как обманывать

Int dayOfWeek = GregorianCalender.DAY_OF_WEEK;