2012-12-20 172 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 - 週日