我有3個組合框定義了日,月和年其用戶將輸入日期比較在JSP
<select name="date" style="width:inherit">
<%for(i=1;i<32;i++){%>
<option value="<%=i%>"><%=i%></option>
<%}%>
</select>
<span>
<span style="width:50%">
<select name="month" style="width:inherit">
<option value="01">January</option>
<option value="02">February</option>
<option value="03">March</option>
<option value="04">April</option>
<option value="05">May</option>
<option value="06">June</option>
<option value="07">July</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
</span>
<span style="width:24%">
<select name="year" style="width:inherit">
<%for(i=2000;i<2015;i++){%>
<option value="<%=i%>"><%=i%></option>
<%}%>
</select>
之後,窗體發佈到doinsert.jsp
並嘗試比較用戶輸入的日期和當天的日期。如果在今天之前用戶輸入的日期變量isPast
應該是< 0.但是,當我嘗試輸入Dec 2013,2013(今天是2013年12月21日)變量isPast
是-1這是正確的。當我嘗試輸入Dec 25,2013(今天是2013年12月21日)變量isPast
仍然是-1這是錯誤的(應該是1)。當我嘗試輸入2014年1月1日(今天是2013年12月21日)時,變量isPast
是1,這是正確的。我在doinsert.jsp中有以下代碼:
String date=request.getParameter("date");
String month=request.getParameter("month");
String year=request.getParameter("year");
String concatdate=year+"-"+month+"-"+date;
SimpleDateFormat ft = new SimpleDateFormat("yyyy-mm-dd");
java.sql.Date newdate= new java.sql.Date(ft.parse(concatdate).getTime());
java.util.Date now=new java.util.Date();
int isPast=0;
isPast=newdate.compareTo(now);
怎麼了? newdate
和now
之間是否有任何不匹配的日期格式?
很好的回答,剝離時間之後,日期可以比 – Keerthivasan
仍然獲得<0,如果我輸入十二月25,2013 – noobprogrammer
@noobprogrammer這也是錯誤的「YYYY-MM-DD」應爲「YYYY- MM-dd「 –