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

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

Ответ 1

Используйте класс Java 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.
}

Ответ 2

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

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

Sat
Saturday

ОБНОВЛЕНИЕ: 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

Ответ 3

Calendar.getInstance().get(Calendar.DAY_OF_WEEK)

или

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

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

Ответ 4

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

Ответ 5

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

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

i.e., результат:

"Sunday"

Ответ 6

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

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

}

Ответ 7

Используя оба метода, вы легко найдете, если не будете длиться семь дней вы используете (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());

}

Ответ 8

Java 8 datetime API сделал это очень легко:

LocalDate.now().getDayOfWeek().name()

Вернет вам имя дня как String

Выход: ЧЕТВЕРГ

Ответ 9

Как DAY_OF_WEEK в классе GregorianCalender - это статическое поле, к которому вы можете получить доступ непосредственно как дураки

int dayOfWeek = GregorianCalender.DAY_OF_WEEK;