Как получить имя текущего дня, используя определенную дату в android? - программирование
Подтвердить что ты не робот

Как получить имя текущего дня, используя определенную дату в android?

У меня есть строка даты 18-2-2012, из этого как получить текущее имя дня, то есть сегодня " суббота". для завтрашнего дня 19-2-2012 и название дня " воскресенье".

4b9b3361

Ответ 1

Использовать форматы даты java.

SimpleDateFormat inFormat = new SimpleDateFormat("dd-MM-yyyy");
Date date = inFormat.parse(input);
SimpleDateFormat outFormat = new SimpleDateFormat("EEEE");
String goal = outFormat.format(date); 

Ответ 2

Вы можете использовать Календарь

            Calendar calendar = Calendar.getInstance();

            calendar.setTime(date_your_want_to_know);

            String[] days = new String[] { "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" }

            String day = days[calendar.get(Calendar.DAY_OF_WEEK)];

Ответ 3

Просто используйте одну строку кода:

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

Ответ 5

Сначала преобразуйте строку даты в Date с помощью SimpleDateFormat.

Затем создайте экземпляр Calendar с этой даты.

Наконец, извлеките день недели из Calendar, используя get(Calendar.DAY_OF_WEEK). Это даст вам целое число от 1 до 7, представляющее день недели. Вы можете просто сопоставить это с массивом строк, чтобы получить дни.

Ответ 6

В @vivek ответ добавьте "- 1" в calendar.get(Calendar.DAY_OF_WEEK), так как он возвращает числа от 1 до 7, но массив String индексируется от 0 до 6.

calendar.setTime(date_your_want_to_know);

String[] days = new String[] { "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" }

String day = days[calendar.get(Calendar.DAY_OF_WEEK)-1];

Ответ 7

Ниже метод вернет день, передав дату в формате String. null возвращается, если возникает исключение.

private String getDay(String date_in_string_format){        
        DateFormat df = DateFormat.getDateInstance();
        Date date;
        try {
             date = df.parse(date_in_string_format);
        } catch (Exception e) {
            Log.e("Error:","Exception " + e);
            return null;
        }
        return new SimpleDateFormat("EEEE").format(date);
    }

Надеюсь, что это поможет.