Android转换DatePicker生成的日期为SimpleDateFormat

时间:2012-11-20 18:54:14

标签: java android datepicker simpledateformat

我刚为我的应用程序实现了DatePicker。但是我很难理解如何将它('theDate')转换为SimpleDateFormat(“yyyy-MM-dd HH:mm:ss Z”),就像下面代码中的('submitDate')一样。

有人可以告诉我如何在我的代码中执行此操作吗?谢谢!

    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case SDATE_DIALOG_ID:
            return new DatePickerDialog(this, 
            sDateSetListener, mYear, mMonth, mDay);        
        }
        return null;
    }

    private DatePickerDialog.OnDateSetListener sDateSetListener =
        new DatePickerDialog.OnDateSetListener() {
            public void onDateSet(DatePicker view, 
            int year, int monthOfYear, int dayOfMonth) {

                mYear = year;
                mMonth = monthOfYear;
                mDay = dayOfMonth;                                
                updateDate();
            }
    };

    private void updateDate() {
        inputDate.setText(
            new StringBuilder()                
                .append(mMonth + 1).append("-")
                .append(mDay).append("-")
                .append(mYear).append(" "));                
    }


    class CreateNewRequest extends AsyncTask<String, String, String> {

        protected String doInBackground(String... args) {

            Calendar c = Calendar.getInstance();
            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");

            String submitDate = sd.format(c.getTime());

            String theDate = inputDate.getText().toString();

            List<NameValuePair> params = new ArrayList<NameValuePair>();

            params.add(new BasicNameValuePair("request_date", theDate));            
            params.add(new BasicNameValuePair("submitDate", submitDate));

            }

1 个答案:

答案 0 :(得分:3)

步骤1)您需要使用theDate

SimpleDateFormatter解析为Date对象

您可能需要单独的SimpleDateFormatter进行上述步骤,您已经为下面的步骤工作了。

你的thisDate格式化为连字符作为分隔符,因此step1的SimpleDateFormatter应该使用连字符:

示例:new SimpleDateFormat("MM-dd-yyyy");

Step2)将上面步骤中构造的Date对象作为输入而不是c.getTime()传递,然后您将获得所需的格式化日期。

编辑:

String theDate = inputDate.getText().toString();
SimpleDateFormat firstFormatter = new SimpleDateFormat("MM-dd-yyyy");
try {
      Date date = firstFormatter .parse(theDate );
      SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
      String submitDate = sd.format(date);

    } catch (ParseException e) {
      e.printStackTrace();
    }