我想从android中的datepicker小部件获取日期我试过这个
Date date1= (Date) new Date
(dpBirthDate.getYear(), dpBirthDate.getMonth(), dpBirthDate.getDayOfMonth());
date1 = (Date) new SimpleDateFormat("yyyy-MM-dd").parse(date1.toString());
但是我得到了一个像mon 7 dec 2011 time
这样的日期......而我想得的只是将yyyy-MM-dd
格式存储到数据库中。
我还尝试将年 - 月 - 日连接起来,但问题是例如今天 2011-12-7 当天应该是07有效
你能帮帮我吗?答案 0 :(得分:65)
我用这个:
/**
*
* @param datePicker
* @return a java.util.Date
*/
public static java.util.Date getDateFromDatePicker(DatePicker datePicker){
int day = datePicker.getDayOfMonth();
int month = datePicker.getMonth();
int year = datePicker.getYear();
Calendar calendar = Calendar.getInstance();
calendar.set(year, month, day);
return calendar.getTime();
}
答案 1 :(得分:13)
您应该使用SimpleDateFormat.format
将Date
个对象转换为String
,就像这样
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateString = sdf.format(date1);
我认为你只是倒退了。您需要使用format
从Date转换为String,并parse
从String转换为Date。
答案 2 :(得分:2)
我知道这已经老了,但我很难找到它。所以后人
场景:视图需要yyyy-mm-dd中的日期
date_field = (EditText)findViewById(R.id.input_date);
date_field.setFocusable(false); // disable editing of this field
date_field.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
chooseDate();
}
});
private void chooseDate() {
final Calendar calendar = Calendar.getInstance();
final int year = calendar.get(Calendar.YEAR);
final int month = calendar.get(Calendar.MONTH);
final int day = calendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePicker =
new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(final DatePicker view, final int year, final int month,
final int dayOfMonth) {
@SuppressLint("SimpleDateFormat")
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
calendar.set(year, month, dayOfMonth);
String dateString = sdf.format(calendar.getTime());
date_field.setText(dateString); // set the date
}
}, year, month, day); // set date picker to current date
datePicker.show();
datePicker.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(final DialogInterface dialog) {
dialog.dismiss();
}
});
}
希望这有助于某人
答案 3 :(得分:0)
如果您的格式很简单,比如数字,
例如:dd/MM/yyyy
您可以使用 Kotlin 方式:
val dp = binding.datePicker
val date = "${dp.dayOfMonth.let { if(it < 10) "0$it" else it }}/${dp.month.plus(1).let { if(it < 10) "0$it" else it }}/${dp.year}"