Android에서 현재 요일을 얻는 가장 쉬운 방법은 무엇입니까?


114

Android에서 현재 요일을 얻는 가장 쉬운 방법은 무엇입니까?

답변:


267

Java Calendar클래스를 사용하십시오 .

Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK); 

switch (day) {
    case Calendar.SUNDAY:
        // Current day is Sunday
        break;
    case Calendar.MONDAY:
        // Current day is Monday
        break;
    case Calendar.TUESDAY:
        // etc.
        break;
}

이는 Android가 아닌 Java 전반에 적용됩니다. '캘린더'클래스는 java.util의 패키지입니다
나빈 Israni

7
@Navin Israni 무슨 말이야? java.util 사용에 문제가 없습니다. 캘린더가 API 레벨 1에 추가되었습니다.
놀라운 1

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

결과 (오늘) :

수능
토요일

업데이트 : 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

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

또는

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

Java와 동일하며 Android에만 국한되지 않습니다.


2
이것은 int를 반환합니다
Himanshu Rawat

Calender.SUNDAY 등에서 확인할 수 있습니다.
Shivam Tripathi

16

Java 8 datetime API은 훨씬 쉽게 만들었습니다.

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

오늘의 이름을 다음과 같이 반환합니다. String

출력 : 목요일


2
좋은! 하지만 안드로이드 API 레벨 26를 필요로
dnhyde

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

9

Calendar 클래스를 전혀 사용하지 않으려면 이것을 사용할 수 있습니다.

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

즉, 결과는

"Sunday"

5

다음은 Current day를 얻는 간단한 방법입니다.

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

}

2
확실 이유는 모르겠지만,이 같은하지 0 그래서 1에서 내 경우 하루 번호 시작, 내 배열 외모에 :String[] days = {"?", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
박사 Failov

"?"를 제거 할 수 있습니다. 다음과 같은int day = calendar.get(Calendar.DAY_OF_WEEK) - 1;
카디르 후세인

4

두 가지 방법을 모두 사용하면 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());

}

1

Java에서 Kotlin으로 캘린더 클래스를 사용할 Kotlin 용 코드를 사용할 수 있습니다.

    val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)

    fun dayOfWeek() {
    println("What day is it today?")
    val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)
    println( when (day) {
      1 -> "Sunday"
      2 -> "Monday"
      3 -> "Tuesday"
      4 -> "Wednesday"
      5 -> "Thursday"
      6 -> "Friday"
      7 -> "Saturday"
      else -> "Time has stopped"
   })
 }

-10

으로 DAY_OF_WEEK 에서 GregorianCalender의 클래스는 정적 필드는 당신이 foolows로 직접 액세스 할 수 있습니다

int dayOfWeek = GregorianCalender.DAY_OF_WEEK;


8
아니, 그냥 아니야. No.
Pkmmte 2015

Java 및 Kotlin 용 Calendar 클래스도 쉽게 사용할 수 있습니다
mahmoud Zahran
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.