将长值作为日期并在Thymeleaf

时间:2016-08-14 16:24:53

标签: java date thymeleaf

我的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()}

2 个答案:

答案 0 :(得分:5)

引用ThymeLeaf documentation

  

我们已经提到${...} 表达式实际上是在上下文中包含的变量映射上执行的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>