2016-10-04 45 views
21

Tôi là người mới sử dụng Java/Spring/Thymeleaf vì vậy hãy chịu mức độ hiểu biết hiện tại của mình. Tôi đã đánh giá this similar question, nhưng không thể giải quyết được vấn đề của tôi.Ngày định dạng trong Thymeleaf

Tôi đang cố gắng để có được một ngày đơn giản thay vì định dạng ngày dài.

// DateTimeFormat annotation on the method that's calling the DB to get date. 
@DateTimeFormat(pattern="dd-MMM-YYYY") 
public Date getReleaseDate() { 
    return releaseDate; 
    } 



// HTML 
<table> 
<tr th:each="sprint : ${sprints}"> 
    <td th:text="${sprint.name}"></td> 
    <td th:text="${sprint.releaseDate}"></td> 
</tr> 

sản lượng hiện tại

sprint1 2016-10-04 14:10:42.183 

Trả lời

41

Bean xác nhận không quan trọng, bạn nên sử dụng Thymeleaf định dạng:

<td th:text="${#dates.format(sprint.releaseDate, 'dd-MMM-yyyy')}"></td> 

Ngoài ra hãy chắc chắn sở hữu releaseDate của bạn là java.util.Date.

Output sẽ như thế nào: 04-Oct-2016

+5

tôi sẽ chỉ để lại này ở đây: Nếu bạn là sử dụng LocalDate hoặc LocalDateTime sử dụng "temporals" thay vì "date" trong Thymeleaf –

11

Nếu bạn muốn sử dụng bộ chuyển đổi trong ngày: thuộc tính văn bản, bạn phải sử dụng cú pháp đúp khung.

<td th:text="${{sprint.releaseDate}}"></td> 

(Họ sẽ được tự động áp dụng cho th: thuộc tính lĩnh vực)

http://www.thymeleaf.org/doc/tutorials/2.1/thymeleafspring.html#double-bracket-syntax

+0

Có cách nào để định cấu hình định dạng mà bộ chuyển đổi khung đôi sử dụng không? –

+0

@DavidTroyer nó hoạt động với bất kỳ cách nào bạn thường làm điều này - bạn có thể sử dụng '@ DateTimeFormat' (giống như câu hỏi), bạn có thể có lớp' @ Configuration' mở rộng 'WebMvcConfigurerAdapter' và ghi đè lên addFormatters để thêm 'Chuyển đổi ', v.v ... – Metroids

0

bạn nên sử dụng Thymeleaf mili giây định dạng

<td th:text="${#dates.format(new java.util.Date(transaction.documentDate), 'dd-MMM-yy')}"></td> 
Các vấn đề liên quan