java - 如何在 Thymeleaf 中使用 Dates.Format 和区域设置

标签 java spring spring-boot thymeleaf

我正在尝试使用 Thymeleaf 中的区域设置格式化日期,我已经使用了dates.format

<td th:text="${#dates.format(embargo.fecha, 'dd-MMMM-yyyy', new Locale('es'))}"></td>

<td th:text="${#dates.format(embargo.fecha, 'dd-MMMM-yyyy',${ new Locale('es')})}"></td>

但以上都不起作用。

我是基于这个已经解决的问题 https://github.com/thymeleaf/thymeleaf-extras-java8time/pull/6

最佳答案

我偶然发现了和你一样的问题。

不起作用的原因是您需要使用#temporals而不是#dates

为此,您需要向项目添加 thymeleaf-extras-java8time 依赖项:

compile("org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE")

请记住,区域设置功能是在版本 2.1.0 发布后添加的,因此您必须使用 Thymeleaf 3。添加:

compile("org.thymeleaf:thymeleaf-spring4:3.0.6.RELEASE")
compile("org.thymeleaf:thymeleaf:3.0.6.RELEASE")
compile("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:2.2.2")

正如 @Andreas 指出的,您需要指定整个包名称,例如:

<td th:text="${#temporals.format(embargo.fecha, 'dd-MMMM-yyyy', new java.util.Locale('es', 'ES'))}"></td>

另请注意,#temporals 不适用于 java.util.Dates,而适用于 java.time.LocalDatejava.time.LocalDateTime

如果您无法更改后端以使用java.time.LocalDate,解决方案是使用LocalDate类中的静态方法of(year,month,day)从您的java.util.Date创建它。

例如:

T(java.time.LocalDate).of(#dates.year(embargo.fecha), #dates.month(embargo.fecha), #dates.day(embargo.fecha))

将其放入您的示例中,它将变为:

<td th:text="${#temporals.format(T(java.time.LocalDate).of(#dates.year(embargo.fecha), #dates.month(embargo.fecha), #dates.day(embargo.fecha)), 'dd-MMMM-yyyy', new java.util.Locale('es', 'ES'))}"></td>

希望对你有帮助!

关于java - 如何在 Thymeleaf 中使用 Dates.Format 和区域设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55245467/

相关文章:

java - Spring Boot Pojo 的 Pojo 验证不起作用

Java:在 Spring Boot 中连接到服务时出现 SSLHandshake 异常

java - 在 Java/beanshell 代码中操作 JMeter JDBC 连接字段

java - 当从 Selenium 触发时,Google Chrome 无法导航到指定的 URL

java - 实现 RouterLayout 的类是否也可以定义为 @Route

java - Spring Security SAML 扩展,具有跨多个 tomcat web 应用程序的“记住我”功能

java - 如何在类中测试 @PreDestroy 和 @Bean 方法

java - 如何控制一个Spring应用中有多少个线程?

java - spring boot 如何使用 src/test/resource/中的 yaml 文件 Autowiring bean

spring-boot - 当我尝试创建新的 Spring Boot 项目时,无法实例化 SLF4J LoggerFactory