You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Thymeleaf中为日期添加一个月(不依赖额外模块)

嘿,这个需求其实用Thymeleaf自带的日期工具就能轻松实现,完全不需要额外的Controller、Translator或者其他模块!下面分两种常见的日期类型给你具体说明:

1. 当${status.startDate}是Java 8+时间类型(LocalDate/LocalDateTime/ZonedDateTime等)

Thymeleaf 3.0.10及以上版本内置了#temporals工具类,专门用来处理Java 8的时间API。直接用它的plusMonths方法就能给日期加1个月,还能配合format方法自定义输出格式:

<!-- 直接输出加1个月后的日期 -->
<p>加1个月后的日期:[[${#temporals.plusMonths(status.startDate, 1)}]]</p>

<!-- 如果需要指定格式(比如yyyy-MM-dd) -->
<p>格式化后的日期:[[${#temporals.format(#temporals.plusMonths(status.startDate, 1), 'yyyy-MM-dd')}]]</p>

<!-- 在HTML属性中使用的话,加上th:前缀 -->
<span th:text="${#temporals.plusMonths(status.startDate, 1)}"></span>

注意:plusMonths会自动处理月份的边界情况,比如1月31日加1个月会变成2月的最后一天(28或29日),完全符合时间API的规范。

2. 当${status.startDate}是旧的java.util.Date类型

如果你的项目还在使用传统的Date类,Thymeleaf的#dates工具类就能搞定,用法和上面类似:

<!-- 直接输出加1个月后的日期 -->
<p>加1个月后的日期:[[${#dates.addMonths(status.startDate, 1)}]]</p>

<!-- 自定义格式输出 -->
<p>格式化后的日期:[[${#dates.format(#dates.addMonths(status.startDate, 1), 'yyyy-MM-dd')}]]</p>

额外小提示

  • 确保你的Thymeleaf版本符合要求:Java 8时间API支持需要3.0.10+版本,旧的Date处理则对版本要求更低。
  • 如果你不确定日期类型,可以先在模板中输出[[${status.startDate.getClass().getName()}]]来查看具体类型,再选择对应的工具类。

内容的提问来源于stack exchange,提问作者user3450862

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:01:51