如何解决如何计算日期列和当前日期之间在JSP中月份的差异
我有以下JSP代码,并想为当前日期和第一列之间的月份差添加第二列。 $ {items}的列表在Controller中映射,该Controller正在调用相应的DAO方法。有没有办法在JSP文件中进行计算?
<table class="table">
<thead>
<tr>
<th>First Date</th>
<th>Months</th>
</tr>
</thead>
<tbody>
<c:forEach items="${items}" var="item">
<tr>
<td><fmt:formatDate value="${item.firstDate}" pattern="yyyy-MM-dd"/></td>
<td>"Here should be the difference in months between the current date and firstDate"</td>
</tr>
</c:forEach>
</tbody>
</table>
谢谢!
解决方法
假设firstDate
的类型为LocalDate
,则需要使用以下代码:
<td>${ChronoUnit.MONTHS.betwee(item.firstDate,LocalDate.now())}</td>
确保您import java.time.LocalDate
和java.time.temporal.ChronoUnit
。
以下程序可以帮助您理解上面的代码:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
System.out.println(ChronoUnit.MONTHS.between(LocalDate.parse("2019-08-10"),LocalDate.now()));
}
}
输出:
12
如果firstDate
的类型为java.util.Date
,我建议您从error-prone legacy date-time and formatting API切换到现代的日期时间和格式API。从 Trail: Date Time
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。