0

我正在从 aDatePicker中获取一个 Date ,它根据用户位置(我认为)对其进行格式化。我想格式化这个日期,以便用户可以选择一种格式。

我还想将此日期存储到数据库中。对于以后的使用,我想使用 format yyyyMMdd

我现在的问题仍然是DatePicker格式化我的日期。

这是我现在写的:

 public static class DatePickerFragment extends DialogFragment implements
            DatePickerDialog.OnDateSetListener, OnClickListener {


        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            // Use the current date as the default date in the picker


            final Calendar c = Calendar.getInstance();
            int year = c.get(Calendar.YEAR);
            int month = c.get(Calendar.MONTH);
            int day = c.get(Calendar.DAY_OF_MONTH);

            return new DatePickerDialog(getActivity(), this, year, month, day);

        }

        public void onDateSet(DatePicker view, int year, int month, int day) {


            // Do something with the date chosen by the user

                dateValue = String.valueOf("" + day + "." + (month + 1) + "." + year);
                date_widget.setText(dateValue);



            try {
                SimpleDateFormat sdfToDate = new SimpleDateFormat(
                        "yyyyMdd");

                dateDB = String.valueOf(sdfToDate.parse(dateValue));
                Log.e("Date", dateDB);
            } catch (ParseException ex2) {
                ex2.printStackTrace();

            }





        }

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
        }
    }

我认为这不是最好的方法,但DatePicker可行。

由于我的月份只有 1 位数字,因此在尝试格式化 dateValue 时出现异常:

 Unparseable date: "22.6.2013" (at offset 7)
4

5 回答 5

2

使用 Calendar 类在 onDateSet 方法中创建一个日期,然后以您的方式格式化。

public void onDateSet(DatePicker view, int year, int month, int day) 
{
            Calendar calendar = Calendar.getInstance();
            calendar.set(year,month,day);

            Date date = calendar.getTime();
}
于 2013-06-22T13:54:30.023 回答
0

当您将字符串解析为日期时,请删除“。” 从字符串。

于 2013-06-22T13:18:22.660 回答
0

首先将dateValue的格式更改为yyyyMMdd然后尝试解析。

于 2013-06-22T13:05:57.993 回答
0

试试这个代码:

String date = "22.6.2013"; SimpleDateFormat sdf = new SimpleDateFormat("dd.M.yyyy"); Date date1 = sdf.parse(date);

System.out.println("Formatted Date : "+date1);

sdf = new SimpleDateFormat("yyyyMdd"); System.out.println("Final Format : "+sdf.format(date1));

于 2013-06-22T13:58:07.510 回答
0

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd")

字符串 formattedDate = sdf.format(view.getCalendarView().getDate());

于 2013-06-22T14:14:39.337 回答