我正在尝试使用 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.LocalDate 和 java.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/