Android日历以字符串形式获取当前星期几

ntm*_*ntm 38 java null android calendar dayofweek

我试着通过这种方式得到一个带有实际工作日名称的字符串:

            Calendar c = Calendar.getInstance();
            int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

            if (c.get(Calendar.MONDAY) == dayOfWeek) weekDay = "monday";
            else if (c.get(Calendar.TUESDAY) == dayOfWeek) weekDay = "tuesday";
            else if (c.get(Calendar.WEDNESDAY) == dayOfWeek) weekDay = "wednesday";
            else if (c.get(Calendar.THURSDAY) == dayOfWeek) weekDay = "thursday";
            else if (c.get(Calendar.FRIDAY) == dayOfWeek) weekDay = "friday";
            else if (c.get(Calendar.SATURDAY) == dayOfWeek) weekDay = "saturday";
            else if (c.get(Calendar.SUNDAY) == dayOfWeek) weekDay = "sunday";
Run Code Online (Sandbox Code Playgroud)

weekDay保持总是为空,我实际上不知道为什么因为调试器说dayOfWeek是5所以我应该等于c.get(Calendar.THURSDAY)

san*_*one 78

就这么简单

sCalendar = Calendar.getInstance();
String dayLongName = sCalendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)


小智 60

我通过以下方式完成了这项工作:

String weekDay;
SimpleDateFormat dayFormat = new SimpleDateFormat("EEEE", Locale.US);

Calendar calendar = Calendar.getInstance();
weekDay = dayFormat.format(calendar.getTime());
Run Code Online (Sandbox Code Playgroud)
  • 使用"EEEE"的日期格式将返回完整的工作日名称,即星期二
  • 使用日期格式"E"将返回缩写名称,即Tue
  • 在Android中返回此格式的另一个好处是它将根据区域设置翻译工作日.

您需要查看SimpleDateFormat以了解更多信息.我认为这是最干净的方法,因为你只需要获取字符串值就不需要switchif语句.

  • 这绝对是最好的答案.简单而美丽.感谢你!也许我会使用Locale.getDefault()而不是Locale.US. (7认同)

小智 16

您应该将dayOfWeek直接与Calendar.MONDAY等进行比较.请参阅下面的代码

另外,如果是其他的话,我已将括号括起来.不要依赖缩进代码流,即使你的if-else只有一个语句,也要明确地加上括号.

    public static void main(String[] args) {

    String weekDay = "";

    Calendar c = Calendar.getInstance();
    int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

    if (Calendar.MONDAY == dayOfWeek) {
        weekDay = "monday";
    } else if (Calendar.TUESDAY == dayOfWeek) {
        weekDay = "tuesday";
    } else if (Calendar.WEDNESDAY == dayOfWeek) {
        weekDay = "wednesday";
    } else if (Calendar.THURSDAY == dayOfWeek) {
        weekDay = "thursday";
    } else if (Calendar.FRIDAY == dayOfWeek) {
        weekDay = "friday";
    } else if (Calendar.SATURDAY == dayOfWeek) {
        weekDay = "saturday";
    } else if (Calendar.SUNDAY == dayOfWeek) {
        weekDay = "sunday";
    }

    System.out.println(weekDay);

}
Run Code Online (Sandbox Code Playgroud)