【问题标题】:Android Convert DatePicker generated date to a SimpleDateFormatAndroid 将 DatePicker 生成的日期转换为 SimpleDateFormat
【发布时间】:2012-11-20 18:54:13
【问题描述】:

我刚刚为我的应用实现了一个 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));

            }

【问题讨论】:

    标签: java android datepicker simpledateformat


    【解决方案1】:

    第 1 步)您需要使用 SimpleDateFormattertheDate 解析为 Date 对象

    您可能需要单独的SimpleDateFormatter 用于上述步骤,您已经为以下步骤工作的那个。

    您的 thisDate 使用连字符作为分隔符进行格式化,因此您在第 1 步的 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();
        }
    

    【讨论】:

    • 看这个例子,它几乎和你的要求一样http://www.java2s.com/Tutorial/Java/0040__Data-Type/SimpleDateFormat.htm,而不是parse(..)中的硬编码字符串,你需要传递这个日期。
    • 谢谢 Nambari,但你能再给我一次链接吗?它看起来像一个错误的链接..
    • 好吧..我还没明白..我想我真的需要有人来指导我一些例子,因为我是java新手..
    • @nana:我可以知道你到底没有得到什么吗?你能更新你的最新代码吗?
    • 我无法编写任何代码,因为我从示例链接中看不懂..你能简单地告诉我吗?我的大脑现在一片空白..
    猜你喜欢
    • 2012-11-09
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多