![](/img/trans.png)
[英]How can i get SQLite to sort by date properly using YYYY-MM-DD format?
[英]How can i list the month values in my select box with my date format yyyy-mm-dd
这是我的代码:
<form>
<table>
<tr>
<td>Month</td>
<td>
<select name="">
<option value="">January</option>
<option value="">February</option>
<option value="">March</option>
<option value="">April</option>
<option value="">May</option>
<option value="">June</option>
<option value="">July</option>
<option value="">August</option>
<option value="">September</option>
<option value="">October</option>
<option value="">November</option>
<option value="">December</option>
</select>
</td>
</tr>
<tr>
<td>Year</td>
<td><input type="text" name="year"></td>
</tr>
<tr>
<td><input type="submit" value="Submit"></td>
</tr>
</table>
</form>
我想将月份值放在选项值中。 假设2013-07-16是SimpleDateFormat中日期格式为yyyy-mm-dd的日期。 如何使用这种格式将7月或“07”的值放入我的选项值中。
<fmt:format var="month" value="${theDate}" pattern="MM"/>
<select name="">
<option value="01" ${month == "01" ? "selected='selected'" : ""}>January</option>
<option value="02" ${month == "02" ? "selected='selected'" : ""}>February</option>
...
</select>
但是,在此代码中有很多重复,因此您最好在控制器中准备List<SelectableMonth>
,并迭代此列表:
<select name="">
<c:forEach var="month" items="${selectableMonths}">
<option value="${month.number}" ${month.selected ? "selected='selected'" : ""}>${month.label}</option>
</c:forEach>
</select>
我多年没有编写任何JSP,但我认为这应该指向正确的方向:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c-rt" %>
<%!
String[] months = { "January","February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
%>
<form>
<table>
<tr>
<td>Month</td>
<td>
<select name="">
<c-rt:forEach var="month" items="<%= months %>">
<option value="${i}">${months[i]}</option>
</c-rt:forEach>
</select>
</td>
</tr>
<tr>
<td>Year</td>
<td><input type="text" name="year"></td>
</tr>
<tr>
<td><input type="submit" value="Submit"></td>
</tr>
</table>
</form>
假设2013-07-16是SimpleDateFormat中日期格式为yyyy-mm-dd的日期。 如何使用这种格式将7月或“07”的值放入我的选项值中。
你的问题有点不清楚,但听起来你问的是你是否有一个由String
建模的日期值,以及一个匹配该值模式的SimpleDateFormat
,你如何修改格式以便以新的方式输出它? 这就是你要找的东西吗?
如果这就是您所要求的,那么您需要两个以上的SimpleDateFormat
实例来建模您想要使用的新格式 - 一个用于建模月份名称,另一个用于数值。 然后,您可以使用parse(String source)
方法将String
转换为Date
并从那里重新格式化它。 如果你想采用这种方法,下面的内容应该可行。
如果采用这种方法,请注意抛出ParseException
。 如果可能的话,你最好从Date
开始。
<%
String today = "2013-07-16";
SimpleDateFormat yearMonthDay = new SimpleDateFormat("yyyy-MM-dd");
Date todaysDate = yearMonthDay.parse(today);
String monthAsNumber = new SimpleDateFormat("MM").format(todaysDate);
String monthAsFullName = new SimpleDateFormat("MMMMM").format(todaysDate);
%>
<select>
<option value="<%= monthAsNumber %>"><%= monthAsFullName %></option>
</select>
此外,最好从JSP中删除这种类型的Java代码以实现可测试性,重用等 - 您应该考虑使用JSTL函数,这将允许您将数据解析移动到单独的类中然后使用bean来渲染每个日期需要显示的两个值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.