如何使用 Thymeleaf 和/或 spring 表达式语言来转换字符串,例如“2018-02-21”转换为日期格式 dd/mm/yyyy(例如“21/02/2018”)

Posted

技术标签:

【中文标题】如何使用 Thymeleaf 和/或 spring 表达式语言来转换字符串,例如“2018-02-21”转换为日期格式 dd/mm/yyyy(例如“21/02/2018”)【英文标题】:How to use Thymeleaf and/or spring expression language to convert a string e.g. "2018-02-21" into a date format dd/mm/yyyy (e.g. "21/02/2018") 【发布时间】:2020-01-18 07:21:44 【问题描述】:

我正在创建一个模板,该模板需要将格式为 yyyy-MM-dd 的字符串变量格式化为 dd/MM/yyyy 格式的日期。我已经成功地用下面的方法解决了这个问题,但这感觉不对......

<p th:text="$testDate != '' ? #dates.format(#strings.replace(testDate,'-','/'),'dd/MM/yyyy') : ''"></p>

还有一个额外的问题,有时日期字段可能会作为时间出现,例如“09:03:21”但我可以稍后再担心。

日期字符串是从服务中检索的,格式不能更改。

感谢您的帮助

【问题讨论】:

一种方法是这样的:***.com/a/52169389 【参考方案1】:

试试这个

<p th:text="$testDate != '' ? #temporals.format(testDate,'dd/MM/yyyy'): ''"></p>

查看here 以获得更好的理解!

【讨论】:

无法让它工作。我正在使用结合了 html 模板和 Thymeleaf 的微服务,因此在另一端无法控制。但是,以下确实有效,因此显然与日期格式为 yyyy-MM-dd....

如果 testDate2="10/10/2018" 有效,但如果是 "2018-10-10" 则失败
你想显示像2018-10-1010/10/2018这样的日期格式? @Blingers 当你在处理微服务时,你肯定在使用 API,不是吗? 是消耗。 api 返回 2018-10-10,我需要转换为 10/10/2018。谢谢 您是否有任何 DTO 用于映射您的 API?

以上是关于如何使用 Thymeleaf 和/或 spring 表达式语言来转换字符串,例如“2018-02-21”转换为日期格式 dd/mm/yyyy(例如“21/02/2018”)的主要内容,如果未能解决你的问题,请参考以下文章

Spring-Thymeleaf 如何使用 EL 调用来自 Bean 的操作方法

Thymeleaf 或 JSP:Spring Boot 哪个更好?

Spring Boot 中的 I18n + Thymeleaf

如何使用 thymeleaf 和 spring 使用列表填充下拉列表

如何从 Spring Boot 中找到 Thymeleaf 模板

如何使用 Spring Security 和 Thymeleaf 获取当前登录用户的 ID