5

我的应用程序中有日期选择器,它运行良好。但我需要选择星期几而不是日期(即,如果我选择日期 23,我需要得到像“星期五”这样的日期而不是数字)。我用于OnDateSetListener点击事件。

    private DatePickerDialog.OnDateSetListener datePickerListener = new         DatePickerDialog.OnDateSetListener() 
{       
    public void onDateSet(DatePicker view, int selectedYear,
        int selectedMonth, int selectedDay) 
    {   

               }
       }

selectedDay在上面的代码中,我需要字符串中的一天(如星期一(或)星期二..)

4

4 回答 4

11

使用以下方法更改您的代码以获取星期几SimpleDateFormat

private DatePickerDialog.OnDateSetListener 
     datePickerListener = new  DatePickerDialog.OnDateSetListener() 
{       
    public void onDateSet(DatePicker view, int selectedYear,
        int selectedMonth, int selectedDay) 
    {   
      SimpleDateFormat simpledateformat = new SimpleDateFormat("EEEE");
      Date date = new Date(selectedYear, selectedMonth, selectedDay-1);
      String dayOfWeek = simpledateformat.format(date);
    }
}
于 2012-12-20T07:05:45.673 回答
1

这将为您提供日期名称::

SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
            Date d_name = new Date();
            String dayOfTheWeek = sdf.format(d_name);
于 2012-12-20T07:31:55.740 回答
1

不要使用:

Date date = new Date(selectedYear, selectedMonth, selectedDay-1);

它已被弃用,在某些情况下会给出错误的输出。检查 2015 年 1 月 28 日和 1940 年 7 月 4 日,两者都是星期四,但星期五返回 1940 年 7 月 4 日。

利用:

GregorianCalendar GregorianCalendar = new GregorianCalendar(year, monthOfYear, dayOfMonth-1);

int dayOfWeek=date.get(date.DAY_OF_WEEK); 

上述方法将返回一个整数值:

  • 1 - 星期一
  • 2 - 星期二
  • ...
  • 7 - 周日
于 2016-01-28T14:46:18.527 回答
1

用这个


GregorianCalendar gregorianCalendar = new GregorianCalendar(year, month,dayOfMonth-1);
int week_number=gregorianCalendar.get(Calendar.DAY_OF_WEEK);

您可以使用 switch case 以文字形式获取工作日。

于 2021-05-24T09:03:12.160 回答