如何以表达式语言获取日,月和年(以及每个Calendar.XXXXXXX值)?
${object.calendarObject.MONTH}
答案 0 :(得分:5)
您可以使用${calendar.time}
在EL中获取Date
个对象。您可以使用JSTL <fmt:formatDate>
将Date
对象格式化为JSP中的人类可读字符串。它使用SimpleDateFormat
封面,并通过pattern
属性支持其所有模式。
在下面的示例中,为简洁起见,我假设${cal}
是日历。在适用的情况下,将其替换为${object.calendarObject}
。
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
...
<ul>
<li>Standard date/time: <fmt:formatDate value="${cal.time}" type="both" /></li>
<li>Standard date: <fmt:formatDate value="${cal.time}" type="date" /></li>
<li>Day: <fmt:formatDate value="${cal.time}" pattern="d" /></li>
<li>Month: <fmt:formatDate value="${cal.time}" pattern="M" /></li>
<li>Year: <fmt:formatDate value="${cal.time}" pattern="yyyy" /></li>
<li>dd-MM-yyyy: <fmt:formatDate value="${cal.time}" pattern="dd-MM-yyyy" /></li>
<li>MM/dd/yyyy: <fmt:formatDate value="${cal.time}" pattern="MM/dd/yyyy" /></li>
</ul>
截至目前,这应该产生类似(英语语言环境,GMT + 1):
- 标准日期/时间:2011年7月6日下午10:34:17
- 标准日期:2011年7月6日
- 日:6
- 月:7
- 年份:2011
- dd-MM-yyyy:06-07-2011
- MM / dd / yyyy:07/06/2011
答案 1 :(得分:2)
您无法直接使用日历对象,可以使用以下getter方法为Calendar对象创建包装器:
public int getMonth(){
wrappedCalendar.get(Calendar.MONTH);
}
public int getDay(){
wrappedCalendar.get(Calendar.DAY_OF_MONTH);
}
public int getYear(){
wrappedCalendar.get(Calendar.YEAR);
}
...
所以你可以使用你的表达语言:
${calWrapper.month}/${calWrapper.day}/${calWrapper.year}