在Android中获取当周最新日期的最简单方法是什么?

waa*_*990 101 java android

在Android中获取本周当前最简单的方法是什么?

Kyl*_*vey 246

使用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;
}
Run Code Online (Sandbox Code Playgroud)

  • @Navin Israni你是什么意思?我在使用java.util时看不到任何问题.日历在API级别1中添加. (6认同)

Las*_*rdi 26

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()));
Run Code Online (Sandbox Code Playgroud)

结果(今天):

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);
Run Code Online (Sandbox Code Playgroud)

结果(今天):

Enum = SATURDAY
FULL = Saturday
FULL_STANDALONE = Saturday
NARROW = S
NARROW_STANDALONE = 6
SHORT = Sat
SHORT_STANDALONE = Sat
Run Code Online (Sandbox Code Playgroud)


Laz*_*eam 20

Calendar.getInstance().get(Calendar.DAY_OF_WEEK)
Run Code Online (Sandbox Code Playgroud)

要么

new GregorianCalendar().get(Calendar.DAY_OF_WEEK);
Run Code Online (Sandbox Code Playgroud)

就像在Java中一样,没有什么特别的Android.

  • 这将返回一个int (2认同)

Meh*_*lik 12

Java 8 datetime API使它变得如此简单:

LocalDate.now().getDayOfWeek().name()
Run Code Online (Sandbox Code Playgroud)

会把你当天的名字归还给你 String

输出:星期四

  • 好的!但在 Android 中需要 API 级别 26 (3认同)

Dee*_*huJ 10

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]);
Run Code Online (Sandbox Code Playgroud)


Vya*_*lav 6

如果您根本不想使用Calendar类,可以使用它

String weekday_name = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)

即,结果是,

"Sunday"
Run Code Online (Sandbox Code Playgroud)


Qad*_*ain 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];

}
Run Code Online (Sandbox Code Playgroud)

  • 我不知道为什么,但在我的情况下,天数从 1 开始,而不是从 0 开始。所以,我的数组看起来像这样:`String[] days = {"?", "Sun", "Mon", "Tue ", "Wed", "Thu", "Fri", "Sat"};` (3认同)

小智 6

您可以使用 Kotlin 的代码,您将使用从 java 到 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"
   })
 }
Run Code Online (Sandbox Code Playgroud)