在 Thymeleaf 中获取当前日期
Posted
技术标签:
【中文标题】在 Thymeleaf 中获取当前日期【英文标题】:Get current date in Thymeleaf 【发布时间】:2015-04-28 14:19:48 【问题描述】:如何从 Thymeleaf 打印当前日期(以及最终时间)? 我正在尝试这些功能: http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#dates 但我无法让它们工作。
【问题讨论】:
【参考方案1】:试试这个:
$#dates.format(#dates.createNow(), 'dd MMM yyyy HH:mm')
将创建一个java.util.Date()
对象,然后按照您的喜好进行格式化。
使用#calendars
实用程序对象
这是另一种方法:
$#calendars.format(#calendars.createNow(), 'dd MMM yyyy HH:mm')
结果是一样的。
【讨论】:
有了Java8TimeDialect
,现在还有#temporals
。【参考方案2】:
这个对我来说很好用:
$#dates.format(#dates.createNow(),'YYYY/MM/dd HH:mm')
【讨论】:
【参考方案3】:Date
将由 #dates
实用程序处理。
新的LocalDateTime
、LocalDate
类将由#temporals
实用程序处理。
设置格式:
<p th:text="$#dates.format(standardDate, 'dd-MM-yyyy HH:mm')"></p>
<p th:text="$#temporals.format(localDateTime, 'dd-MM-yyyy HH:mm')"></p>
<p th:text="$#temporals.format(localDate, 'MM-yyyy')"></p>
您必须将其发送到视图,如下所示:
model.addAttribute("standardDate", new Date());
model.addAttribute("localDateTime", LocalDateTime.now());
model.addAttribute("localDate", LocalDate.now());
只有当我们只指定特定的日期字段,跳过时间字段时,才能格式化LocalDate
。
输出结果:
24-05-2019 21:57
24-05-2019 21:57
24-05-2019
【讨论】:
【参考方案4】:在 thymeleaf 中获取当前日期和时间的另一种方法是使用,
$execInfo.now
当前日期和时间 (
$execInfo.now
),一个 Calendar 对象 对应于模板引擎开始执行的时刻 对于这个模板。
你可以创建一个WebContext来修改上下文变量,
WebContext ctx = new WebContext(request, servletContext, request.getLocale());
创建上下文时,它会创建一个对象,其中包含模板引擎的两个值。对象名称为execInfo
。这两个变量是templateName
和now
。可以在模板中的任何位置访问这些变量。
如果需要格式化日期格式可以这样操作,
WebContext ctx = new WebContext(request, servletContext, request.getLocale());
ctx.setVariable("today", dateFormat.format(cal.getTime()));
例子:
Current time : <div th:text="$execInfo.now.time">Wed Feb 10 13:55:58 IST 2016</div>
【讨论】:
【参考方案5】:我希望这可行:
<b th:text="$#execInfo.now.time"></b>
【讨论】:
很高兴看到解释为什么会这样,例如,什么是“execInfo”?以上是关于在 Thymeleaf 中获取当前日期的主要内容,如果未能解决你的问题,请参考以下文章