Javaのjava.timeのライブラリでLocalDateTime便利なのですが、Thymeleaf3系では対応していません。
thymeleaf-extras-java8timeというライブラリを追加すると、使用できるようになります。本記事ではThymeleaf3系でLocalDateTimeを使用する方法をご紹介します。
Java側ソースコード
SampleController.java
package com.example.demo;
import java.time.LocalDateTime;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class SampleController {
@GetMapping(value = "/")
public String sampleHostGet(Model model) {
// 現在時刻を設定して返却
model.addAttribute("serverTime", LocalDateTime.now());
return "index";
}
}
LocalDateTimeの詳細な仕様方法は次の記事を記載があります。
JavaのLocalDateTimeで日時関連処理を簡単にする方法
Javaで日時関連の処理を対応するにはjava.timeのライブラリでLocalDateTimeが便利です。これらはJava8から対応されま...
thymeleaf用ライブラリ追加
dependenciesにライブラリを追加します。
Gradle
build.gradle
dependencies {
compile('org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE')
}
Spring Bootでは次のように記述することが出来ます。
build.gradle
dependencies {
implementation 'org.thymeleaf.extras:thymeleaf-extras-java8time'
}
Spring Bootを使用している場合は、Spring Boot側で適切なバージョンを使用してくれるため、こちらを使用する方が良いです。
Maven
pom.xml
<dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-java8time</artifactId> </dependency>
Thymeleaf側ソースコード
index.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p th:text="${#temporals.format(serverTime, 'yyyy/MM/dd HH:mm:ss')}"></p>
</body>
</html>
結果
Webブラウザにこのように出力されます。
2021/01/09 23:45:59