当前位置: 首页 > 知识库问答 >
问题:

解析和格式化日期选取器日期从简单日期格式到简单日期格式

咸晨
2023-03-14

我正在尝试将DatePicker日期格式化为简单的数据格式(“yyyy-MM-dd HH: mm: ss Z”)。有人告诉我,我需要使用简单的数据格式将其解析为日期对象-简单的数据格式(“yyyy-MM-dd”),然后将其格式化为我需要的内容,如下所示。但是,我在尝试捕捉块中收到错误“重复局部变量eDate”。任何专家都可以查看我的代码并提出建议吗?

已更新

@Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case EDATE_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() {
        inputEdate.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 firstDateFormat = 
            new SimpleDateFormat("yyyy-MM-dd");

            SimpleDateFormat secondDateFormat = 
            new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");

            String eDate = inputEdate.getText().toString();             

            try{

                Date date = firstDateFormat.parse(eDate);
                String eDate = secondDateFormat.format(date);

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

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

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

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

            }

共有1个答案

姬康平
2023-03-14

复制变量 eDate 的声明。如果你想要覆盖该值,只需删除类型声明 String 即可,如下所示:

eDate = df.format(date);

编辑:

我想你想要的是这个:

class CreateNewRequest extends AsyncTask<String, String, String> {
    protected String doInBackground(String... args) {
        Calendar c = Calendar.getInstance();
        SimpleDateFormat firstDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat secondDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");

        String eDate = inputEdate.getText().toString();             

        try {
            Date date = firstDateFormat.parse(eDate);
            eDate = secondDateFormat.format(date);
            submitDate = secondDateFormat.format(c.getTime());
        } catch(ParseException e) {
            e.printStackTrace();
        }
        List<NameValuePair> params = new ArrayList<NameValuePair>();            
        params.add(new BasicNameValuePair("submitDate", submitDate));
        params.add(new BasicNameValuePair("request_date", eDate));
    }
}
 类似资料:
  • 问题内容: 如果我有一个日期,而我想要的只是这样的月份和日期(mm / dd),然后把这个月份变成08年7月,您将如何写日期 问题答案: 让我看看我是否理解得很好。 您有“ 07/08”之类的日期,并且想要“ 08年7月”? 您可以尝试SimpleDateFormat

  • 我有一个变量在一个类在测试情况下,我需要嘲笑它。我尝试过这样 但事实的确如此 giving me无法将给定对象格式化为日期 在一台机器和另一台机器上 它给我的日期不能为空。 我是Junit新手,需要帮助解决这个问题

  • 我想在获得,和。 这是一条漫长的道路: 我的问题:如何将最后一部分压缩到函数? 我想归档的内容: p/s:的含义与标准数字格式字符串相同。像C#语法:

  • 设定年月日的排列顺序。

  • 问题内容: 这是我的日期字符串: “ 07SEP2014 00:00” 这是将字符串转换为日期的代码: 而且我正在解析异常。我做错了什么? 问题答案: 您的代码有效-只要您的系统具有SEP = September的语言环境。您可以设置区域设置来确保这一点: