JSTL 在 forEach 循环中递增日期字符串

问题描述 投票:0回答:1

我在 JSTL 中有这个 forEach 循环。日期字符串的格式为

MM/dd/yyyy
,在 for 循环的末尾,我想每次将日期增加 1。

<c:set var="currentDate" value="${param.STARTDATE}"/>
  <c:forEach begin="1" end="7" varStatus="loop">

  <!-- Doing other stuff with the date as a string here -->
                            
  <c:set var="nextDay" value="currentDate + someDateCalculation" />
  <c:set var="currentDate" value="${nextDay}" />
</c:forEach>
date jsp jstl
1个回答
0
投票

您可以使用类

LocalDateTime
从参数中解析日期字符串,然后将其转换为
LocalDate
。然后您可以使用它的 API 增加一天。如果您想将日期用作字符串,那么您应该使用格式化程序使用指定的模式对其进行格式化。

<c:set var="currentDate" value="${LocalDateTime.parse(param.STARTDATE, DateTimeFormatter.ofPattern("MM/dd/yyyy"))}" />
<c:forEach begin="1" end="7" varStatus="loop">

  <!-- Doing other stuff with the date as a string here -->
  <c:set var="currentDateAsString" value="${currentDate.format(DateTimeFormatter.ofPattern("MM/dd/yyyy"))}" />  

  <!-- Increment a current date by 1 day -->                            
  <c:set var="currentDate" value="${currentDate.plusDays(1)}" />
</c:forEach>
© www.soinside.com 2019 - 2024. All rights reserved.