Cách dễ nhất để xem ngày hiện tại trong tuần trong Android là gì?


114

Cách dễ nhất để xem ngày hiện tại trong tuần trong Android là gì?

Câu trả lời:


267

Sử dụng Calendarlớp Java .

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

Điều này có thể áp dụng trên Java, không phải Android. Lớp "Lịch" là từ gói java.util
Navin Israni

7
@Navin Israni Ý bạn là gì? Tôi không thể thấy bất kỳ sự cố nào khi sử dụng java.util. Lịch được thêm vào API cấp 1.
Ngày tháng 1 tuyệt vời

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

Kết quả (cho ngày hôm nay):

Đã ngồi
ngày thứ bảy

CẬP NHẬT: 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);

Kết quả (cho ngày hôm nay):

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)

hoặc là

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

Cũng giống như trong Java, không có gì đặc biệt đối với Android.


2
điều này trả về một int
Himanshu Rawat

Bạn có thể kiểm tra điều đó từ Calender.SUNDAY, v.v.
Shivam Tripathi

16

Java 8 datetime APIđã làm cho nó dễ dàng hơn rất nhiều:

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

Sẽ trả lại cho bạn tên của ngày như String

Đầu ra: THURSDAY


2
Đẹp! nhưng yêu cầu API cấp 26 trong Android
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

Nếu bạn không muốn sử dụng lớp Lịch, bạn có thể sử dụng nó

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

tức là, kết quả là,

"Sunday"

5

Đây là cách tiếp cận đơn giản của tôi để có được Ngày hiện tại

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
Tôi không chắc chắn lý do tại sao, nhưng trong trường hợp của tôi số ngày bắt đầu từ 1, không phải từ 0. Vì vậy, ngoại hình mảng của tôi như thế này:String[] days = {"?", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
Tiến sĩ Failov

bạn có thể loại bỏ dấu "?" sau đó thíchint day = calendar.get(Calendar.DAY_OF_WEEK) - 1;
Qadir Hussain

4

Sử dụng cả hai phương pháp bạn thấy dễ dàng nếu bạn không sử dụng bảy ngày qua (số ngày hiện tại + 7-1)% 7, (số ngày hiện tại + 7-2)% 7 ..... tối đa 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

bạn có thể sử dụng mã đó cho Kotlin mà bạn sẽ sử dụng lớp lịch từ java vào 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 trong lớp GregorianCalender là một trường tĩnh nên bạn có thể truy cập trực tiếp dưới dạng lừa

int dayOfWeek = GregorianCalender.DAY_OF_WEEK;


8
Không, nhất quyết không. Không
Pkmmte

bạn cũng có thể dễ dàng sử dụng Lịch lớp cho java và Kotlin
mahmoud Zahran
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.