Thymeleaf가 제공하는 유틸리티 객체 및 날짜

타임리프는 URI, 메시지, 숫자 및 문자 등을 편리하게 다룰 수 있도록 다양한 유틸리티 객체들을 제공한다.

 

타임리프 유틸리티 객체

  • #message : 메시지, 국제화 처리
  • #uris : URI 이스케이프 지원
  • #dates : java.util.Date 서식 지원
  • #calendars : java.util.Calendar 서식 지원
  • #temporals : 자바8 날짜 서식 지원
  • #numbers : 숫자 서식 지원
  • #strings : 문자 관련 편의 기능
  • #objects : 객체 관련 기능 제공
  • #bools : boolean 관련 기능 제공
  • #arrays : 배열 관련 기능 제공
  • #lists, #sets, #maps : 컬렉션 관련 기능 제공
  • #ids : 아이디 처리 관련 기능 제공
타임리프 유틸리티 객체
- https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#expression-utility-objects
유틸리티 객체 예시
- https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#appendix-b-expression-utility-objects

※ 참고
이 외에도 상당히 많은 수의 유틸리티 객체들을 제공하므로, 필요에 따라 해당 메뉴얼에서 찾아 사용하면 된다.

 

자바 8 날짜

Java 8의 날짜 LocalDate, LocalDateTime, Instant 등을 타임리프에서 사용하기 위해선 추가적인 라이브러리 사용이 요구된다. 하지만 스프링 부트 타임리프 사용 시 해당 라이브러리에 대한 추가적인 작업없이 자동으로 추가 및 통합이 가능하다.

 

타임리프 자바 8 날짜 지원 라이브러리

thymeleaf-extras-java8time

자바 8 날짜 유틸리티 객체

#temporals
ex)   
<span th:text="${#temporals.format(localDateTime, 'yyyy-MM-dd HH:mm:ss')}"></span>

 

Controller

@GetMapping("/date")
public String date(Model model) {
    model.addAttribute("localDateTime", LocalDateTime.now());
    return "basic/date";
}

 

1. .HTML (LocalDateTime)

<ul>
 <li>default = <span th:text="${localDateTime}"></span></li>
 <li><span th:text="${#temporals.format(localDateTime, 'yyyy-MM-dd HH:mm:ss')}"></span></li>
</ul>

 

1. 결과 (LocalDateTime)

· default = 2022-12-23T14:02:50.012011700
· yyyy-MM-dd HH:mm:ss = 2022-12-23 14:02:50

 

 

 

2. .HTML (LocalDateTime - Utils)

<ul>
 <li><span th:text="${#temporals.day(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.month(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.monthName(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.monthNameShort(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.year(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.dayOfWeek(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.dayOfWeekName(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.dayOfWeekNameShort(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.hour(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.minute(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.second(localDateTime)}"></span></li>
 <li><span th:text="${#temporals.nanosecond(localDateTime)}"></span></li>
</ul>

 

2. 결과 (LocalDateTime - Utils)

· ${#temporals.day(localDateTime)} = 23
· ${#temporals.month(localDateTime)} = 12
· ${#temporals.monthName(localDateTime)} = 12월
· ${#temporals.monthNameShort(localDateTime)} = 12월
· ${#temporals.year(localDateTime)} = 2022
· ${#temporals.dayOfWeek(localDateTime)} = 5
· ${#temporals.dayOfWeekName(localDateTime)} = 금요일
· ${#temporals.dayOfWeekNameShort(localDateTime)} = 금
· ${#temporals.hour(localDateTime)} = 14
· ${#temporals.minute(localDateTime)} = 2
· ${#temporals.second(localDateTime)} = 50
· ${#temporals.nanosecond(localDateTime)} = 12011700

 

 

 

'Thymeleaf' 카테고리의 다른 글

[Thymeleaf] 연산  (0) 2022.12.26
[Thymeleaf] 리터럴 Literal  (0) 2022.12.25
[Thymeleaf] 기본 객체 및 편의 객체  (0) 2022.12.23
[Thymeleaf] 변수 - SpringEL  (0) 2022.12.17
[Thymeleaf] 텍스트 - TEXT, UTEX  (1) 2022.12.15

+ Recent posts