在DatePicker中格式化日期,在数据库中存储日期

时间:2013-06-22 12:57:43

标签: android datetime formatting datepicker

我从DatePicker获取日期,根据用户位置(我认为)格式化日期。我想格式化这个日期,以便用户可以选择格式。

另外,我想将此日期存储到数据库中。对于以后的使用,我想使用格式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)

5 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

将字符串解析为日期删除“。”来自字符串。

答案 3 :(得分: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));

答案 4 :(得分:0)

SimpleDateFormat sdf = new SimpleDateFormat(“yyyyMMdd”)

String formattedDate = sdf.format(view.getCalendarView()。getDate());