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

时间:2011-04-07 00:54:17

标签: java android

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

12 个答案:

答案 0 :(得分:238)

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

答案 1 :(得分:22)

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

答案 2 :(得分:18)

Calendar.getInstance().get(Calendar.DAY_OF_WEEK)

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

与Java相同,没有什么特别的Android。

答案 3 :(得分: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]);

答案 4 :(得分:8)

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

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

将以String

的形式返回当天的名称
  

输出:THURSDAY

答案 5 :(得分:6)

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

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

即,结果是,

"Sunday"

答案 6 :(得分:3)

以下是获取当天的简单方法

$(document).ready(function () {
    var iframes = $(".my-iframe");
    $.each(iframes, function () {
        resizeIframe(this);
    });
});

function resizeIframe(iframe) {
    $(iframe).width("100%");
    var iframeIsReady = false;
    do
    {
        if ($(iframe).ready)
        {
            var iframeHeight = iframe.contentDocument.body.scrollHeight;
            $(iframe).height(iframeHeight);
            var iframeContentHeight = $(iframe).children("#DivInPage").height();
            $(iframe).height(iframeContentHeight);
            iframeIsReady = true;
        }
        else
        {
            setTimeout(resizeIframe(iframe), 1000);
        }
    }while(!iframeIsReady);
}

答案 7 :(得分:3)

您可以为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"
   })
 }

答案 8 :(得分:2)

使用这两种方法,如果你不会持续七天,你会觉得很容易 你使用(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());

}

答案 9 :(得分:0)

以防万一您不想在Android上执行此操作,考虑一下并不是所有设备都在本地时间标记日历是很有帮助的。

从Java 8开始:

LocalDate.now(ZoneId.of("America/Detroit")).getDayOfWeek()

答案 10 :(得分:0)

如果要在 strings.xml 中定义日期字符串。你可以像下面这样。
Calendar.DAY_OF_WEEK 返回值来自 1 -> 7 <=> Calendar.SUNDAY -> Calendar.SATURDAY

strings.xml

<string-array name="title_day_of_week">
    <item>日</item> <!-- sunday -->
    <item>月</item> <!-- monday -->
    <item>火</item>
    <item>水</item>
    <item>木</item>
    <item>金</item>
    <item>土</item> <!-- saturday -->
</string-array>

DateExtension.kt

fun String.getDayOfWeek(context: Context, format: String): String {
    val date = SimpleDateFormat(format, Locale.getDefault()).parse(this)
    return date?.getDayOfWeek(context) ?: "unknown"
}

fun Date.getDayOfWeek(context: Context): String {
    val c = Calendar.getInstance().apply { time = this@getDayOfWeek }
    return context.resources.getStringArray(R.array.title_day_of_week)[c[Calendar.DAY_OF_WEEK] - 1]
}

使用

// get current day
val currentDay = Date().getDayOfWeek(context)

// get specific day
val dayString = "2021-1-4"
val day = dayString.getDayOfWeek(context, "yyyy-MM-dd")

答案 11 :(得分:-7)

GregorianCalender 类中的 DAY_OF_WEEK 是一个静态字段,您可以直接访问它 作为傻瓜

  

int dayOfWeek = GregorianCalender.DAY_OF_WEEK;