У меня есть строка даты 18-2-2012, из этого как получить текущее имя дня, то есть сегодня " суббота". для завтрашнего дня 19-2-2012 и название дня " воскресенье".
Как получить имя текущего дня, используя определенную дату в android?
Ответ 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);
Ответ 4
int dayOfWeek=bday.get(Calendar.DAY_OF_WEEK); // Returns 3, for Tuesday!
Подробнее см. здесь.... http://mobile.tutsplus.com/tutorials/android/java_android_date-and-time/
Ответ 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);
}
Надеюсь, что это поможет.