2012-12-20 132 views
3

我在我的应用程序中有日期选择器,它的工作很好。但我需要选择一周中的某一天而不是日期(即,如果我选择日期23我需要像“星期五”而不是数字)。我使用OnDateSetListener进行点击事件。datepicker选定星期几android

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

       } 
     } 

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

+0

[Android的可能重复:如何在用户的语言中获取当周的星期几(星期一等)](http://stackoverflow.com/questions/7651221/android-how-to-get当天星期一等用户l) – bummi

回答

4

改变你的代码使用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); 
    } 
} 
+0

@pros:我以字符串格式得到了星期几,但它得到前一天(例如星期五的星期六,周日为星期六)。我使用selectedDay-1而不是selectedDay来获取正确的result.pls,将其更改为标记为正确。 – shivcena

+0

@sivanesan:谢谢我改变了它 –

1

这会给你一天的名字::

SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); 
      Date d_name = new Date(); 
      String dayOfTheWeek = sdf.format(d_name); 
0

不要使用:

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

已弃用它,并会在某些情况下输出错误的结果。请注意2015年2月28日和1940年4月4日,两者都是星期四,但星期五将于04年7月4日返回。

用途:

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

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

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

  • 1 - 周一
  • 2 - 周二
  • ...
  • 7 - 周日