0

私は次の機能を持っています:

public String splitDate(String data, int i){
        String[] items = data.split("/");
        for(String item:items){
            return items[i];
        }
        return null;
    }

date stringこの「12/24/2013」のようなものを取り、それを分割します。

この関数を使用して、特定の順序で datePicker をインスタンス化しようとしています。

public Dialog onCreateDialog(Bundle savedInstanceState) {
    int yy = 0;
    int dd = 0;
    int mm = 0;
if(dateString.length()>1){
    yy = Integer.parseInt(splitDate(dateString,2);
    dd = Integer.parseInt(splitDate(dateString,1);
    mm  = Integer.parseInt(splitDate(dateString,0);
}else{
        final Calendar calendar = Calendar.getInstance();
    yy = calendar.get(Calendar.YEAR);
    mm = calendar.get(Calendar.MONTH);
    dd = calendar.get(Calendar.DAY_OF_MONTH);
    }
    return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}

しかし、この関数を使用すると、次のエラーが発生します。

08-27 00:14:39.383: E/AndroidRuntime(16368): FATAL EXCEPTION: main
08-27 00:14:39.383: E/AndroidRuntime(16368): java.lang.IllegalArgumentException: current should be >= start and <= end

誰か助けて?String dateString日付ピッカーに入力するにはどうすればよいですか?

4

1 に答える 1

1

簡単な日付形式を使用して文字列から情報を取得できます。日付を解析して必要なフィールドを返す簡単な関数を次に示します。

private int getFromCalendar(String strDate,int field)
{
    int result = -1;
    try
    {
        SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");// this is your date format "12/24/2013" = "MM/dd/yyy"
        java.util.Date date = formatter.parse(strDate);//convert to date
        Calendar cal = Calendar.getInstance();// get calendar instance
        cal.setTime(date);//set the calendar date to your date
        result = cal.get(field); // get the required field  
        return result;//return the result.
    }
    catch (ParseException e)
    {
        e.printStackTrace();
    }
    return result;
}

そして、これはあなたが電話をかける方法です:

int yy = getFromCalendar("12/24/2013",Calendar.YEAR);
int mm = getFromCalendar("12/24/2013",Calendar.MONTH);
int dd = getFromCalendar("12/24/2013",Calendar.DAY_OF_MONTH);
于 2013-08-26T19:41:37.283 に答える