Каким будет самый простой способ получить текущий день недели в 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;