我的Thymeleaf模板中有这一行。
<td th:text="${activity.loggedTimestamp}"></td>
我希望在格式化之前将此长值转换为日期。如果已经是约会,我会这样做:
<td th:text="${#dates.format(activity.loggedTimestamp)}"></td>
但是,由于它的价值很长,我想先把它作为日期。
我在文档中找到了一些相关的方法。但是,不符合我的要求。
/*
* Create date (java.util.Date) objects from its components
*/
${#dates.create(year,month,day)}
${#dates.create(year,month,day,hour,minute)}
${#dates.create(year,month,day,hour,minute,second)}
${#dates.create(year,month,day,hour,minute,second,millisecond)}
/*
* Create a date (java.util.Date) object for the current date and time
*/
${#dates.createNow()}
/*
* Create a date (java.util.Date) object for the current date (time set to 00:00)
*/
${#dates.createToday()}
答案 0 :(得分:5)
我们已经提到
${...}
表达式实际上是在上下文中包含的变量映射上执行的OGNL(对象 - 图形导航语言)表达式。有关OGNL语法和功能的详细信息,请阅读OGNL语言指南:http://commons.apache.org/ognl/
因此,请点击指向OGNL documentation的链接:
您可以使用
new
运算符在Java中创建新对象。一个区别是您必须为java.lang包中的类以外的类指定完全限定的类名。仅适用于默认的ClassResolver。使用自定义类解析程序包可以映射,以便可以对类进行更多类似Java的引用。有关使用
ClassResolver
课程的详细信息,请参阅OGNL开发人员指南(例如new java.util.ArrayList()
,而不仅仅是new ArrayList()
)。OGNL选择正确的构造函数,使用与重载方法调用相同的过程进行调用。
<强>结论强>
你写道:
<td th:text="${#dates.format(new java.util.Date(activity.loggedTimestamp))}"></td>
答案 1 :(得分:0)
我更喜欢直接在HTML Thymeleaf页面上使用:
<span th:text="'Label of Date: ' + ${#dates.format(new java.util.Date(activity.loggedTimestamp), 'dd/MM/yyyy - HH:mm')}"></span>