我从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)
答案 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());