還記得開始做項目的時候,爲了省事,躲避未來已知或未知的麻煩,好多日期格式的都直接用String類型了。後來被強制要求用Date或DateTime類型,也沒有實際去追問。
這裏就又要提一句老話了:出來混總是要還的。這次又要操作日期,不同的是我們已經過了囫圇吞棗的年紀。
經過一番實踐和調查,明白了我們爲什麼要用Date類型:
2、檢索效率。如果你經常在where後面帶這個日期,或者要給這個字段建索引。你可以試試Date和Char的差別,更別說分區索引了。
3、計算方便。當你計算兩個日期差幾天,你是願意對着char寫個function判斷大月小月閏月呢,還是直接拿Date變量date1-date2呢?
// -------------Start 轉換時間,獲取教師的出生日期所屬範圍,格式爲:2015-12-16 17:56:01-----------
String max=request.getParameter("maxAge");
String min=request.getParameter("minAge");
if(!"".equals(min) && min!=null)
{
int maxAge = Integer.parseInt(max);
int minAge = Integer.parseInt(min);
SimpleDateFormat now = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.UK);//設置原始日期格式
Calendar cMax = Calendar.getInstance();
Calendar cMin = Calendar.getInstance();
//當前日期減去範圍值
cMax.add(Calendar.YEAR, -minAge);
cMin.add(Calendar.YEAR, -maxAge);
String minDate = cMax.getTime().toString();
String maxDate = cMin.getTime().toString();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設置要轉換的格式
try
{
Date dateMin=now.parse(minDate);
Date dateMax=now.parse(maxDate);
String minminDate=sdf.format(dateMin);
String maxmaxDate=sdf.format(dateMax);
conditions.setMaxDate(sdf.parse(minminDate));
conditions.setMinDate(sdf.parse(maxmaxDate));
}
catch (ParseException e)
{
e.printStackTrace();
}
}else{
conditions.setMaxDate(null);
conditions.setMinDate(null);
}
// -------------End 轉換時間,獲取教師的出生日期所屬範圍,格式爲:2015-12-16 17:56:01------------