运用场景:获取时间String,将其在日历中显示出来,提交时判断开始日期和结算日期,结束日期不能早于开始日期。
/**
* 将yyyy-MM-dd string转化为date
*
* @param st
* @return
*/
public Date dateFromString(String st) {
Date date = null;
// 设置传入的时间格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
date = dateFormat.parse(st);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
* 根据类型设置对应的textview
*
* @param type
*/
public void initData(final String type) {
Date date = null;
Calendar calendar = Calendar.getInstance();
if (type.equals("start")) {
date = dateFromString(tvStartDate.getText().toString());
} else {
date = dateFromString(tvEndDate.getText().toString());
}
calendar.setTime(date);
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int mYear, int mMonth, int mDay) {
String s = getDate(mYear, mMonth, mDay);
if (type.equals("start")) {
SearchOrderActivity.this.tvStartDate.setText(s);
orderSearchBean.setSdate(s);
} else {
SearchOrderActivity.this.tvEndDate.setText(s);
orderSearchBean.setEdate(s);
}
}
}, year, month, day);
datePickerDialog.show();
}
/**
* 判断时间是否正确
* @param sDate
* @param eDate
* @return
*/
private boolean dateIsRight(String sDate, String eDate) {
Date startDate = dateFromString(sDate);
Date endDate = dateFromString(eDate);
if (endDate.before(startDate)) {
return false;
} else {
return true;
}
}