Thymeleaf 解析预处理字符串到日期并格式化它

Fat*_*teh 2 date-format thymeleaf spring-boot

我有包含属性列表的模型属性。

我想要格式化的值类似于此字符串:2012-07-16T00:00:00

我尝试使用

<p th:text="${#temporals.format(${myData.mdProperties.get('completionDate')}, 'dd-MM-yyyy')}"></p>
Run Code Online (Sandbox Code Playgroud)

解析一直失败。然后我想我应该使用自定义方言将字符串转换为日期,但它很复杂。有没有更简单的解决方案?

我尝试根据这个问题将字符串转换为日期,但失败了:

<p th:text="${#temporals.format(new java.util.Date(${{myData.mdProperties.get('completionDate')}}), 'dd-MM-yyyy')}"></p>
Run Code Online (Sandbox Code Playgroud)

Met*_*ids 5

您的每个表达式中的括号太多。一般来说,永远不应该有嵌套${ ... }表达式(除了进行预处理时)。

此外,您还需要创建一个简单的日期格式来首先解析您的日期。这适用于我的测试用例:

<th:block th:with="sdf = ${new java.text.SimpleDateFormat('yyyy-MM-dd''T''HH:mm:ss')}">
    <p th:text="${#dates.format(sdf.parse(myData.mdProperties.get('completionDate')), 'dd-MM-yyyy')}" />
</th:block>
Run Code Online (Sandbox Code Playgroud)