在 Thymeleaf 中获取当前日期

Get current date in Thymeleaf

如何从 Thymeleaf 打印当前日期(和最终时间)? 我正在尝试这些功能: http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#dates 但我无法让它们工作。

试试这个:

${#dates.format(#dates.createNow(), 'dd MMM yyyy HH:mm')}

将创建一个 java.util.Date() 对象,然后根据您的喜好格式化。


使用#calendars实用对象

这是另一种方法:

${#calendars.format(#calendars.createNow(), 'dd MMM yyyy HH:mm')}

结果是一样的。

这个对我来说很好用:

${#dates.format(#dates.createNow(),'YYYY/MM/dd HH:mm')}

在 thymeleaf 中获取当前日期和时间的另一种方法是使用,

${execInfo.now}

The current date and time (${execInfo.now}), a Calendar object corresponding to the moment the template engine started its execution for this template.

您可以创建一个 WebContext 来修改上下文变量,

WebContext ctx = new WebContext(request, servletContext, request.getLocale());

创建上下文时,它会创建一个对象,其中包含模板引擎的两个值。对象名称是 execInfo。这两个变量是 templateNamenow。可以在模板中的任何位置访问这些变量。

如果你需要格式化日期格式,你可以这样做,

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>

我希望这有效:

<b th:text="${#execInfo.now.time}"></b>

Date 将由 #dates 实用程序处理。
新的 LocalDateTimeLocalDate 类 将由 #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