在Thymeleaf中处理日期格式化显示主要有以下几种方式:
1. 使用#dates.format()方法进行基础格式化:
<p th:text="${#dates.format(dateObj, 'yyyy-MM-dd HH:mm:ss')}"></p>
这种方法支持自定义格式模式,如yyyy表示年份、MM表示月份等。
2. 表单字段的日期格式化:
当使用th:field绑定时会出现格式问题,应改用th:name+th:value组合:
<input th:name="createTime" th:value="${#dates.format(bizObj.createTime,'yyyy-MM-dd HH:mm:ss')}">
这样可以同时解决页面显示和后端传值的格式问题。
3. 日期组件提取:
年:[[${#dates.year(date)}]]
月:[[${#dates.monthName(date)}]]
日:[[${#dates.day(date)}]]
支持提取日期对象的各个字段。
4. ISO标准格式:
[[${#dates.formatISO(date)}]]
会输出类似2025-08-11T11:34:43.000+08:00的ISO8601格式。
5. 集合类型日期格式化:
${#dates.arrayFormat(datesArray,'格式')}
${#dates.listFormat(datesList,'格式')}
支持对数组/列表中的日期批量格式化。
注意事项:
- 避免同时使用th:field和th:value
- 格式字符串需符合Java的SimpleDateFormat规范
- 时区问题需通过后端Date对象处理