Opmaakdatum in Thymeleaf

Ik ben helemaal nieuw in Java/Spring/Thymeleaf, dus houd alsjeblieft rekening met mijn huidige begripsniveau. Ik heb deze soortgelijke vraagbekeken, maar kon mijn probleem niet oplossen.

Ik probeer een vereenvoudigde datum te krijgen in plaats van de lange datumnotatie.

// 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>
</table>

Huidige output

sprint1 2016-10-04 14:10:42.183

Antwoord 1, autoriteit 100%

Bean-validatie maakt niet uit, je moet de Thymeleaf-opmaak gebruiken:

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

Zorg er ook voor dat uw eigenschap releaseDatejava.util.Dateis.

Uitvoer zal zijn als: 04-Oct-2016


Antwoord 2, autoriteit 22%

Als u converters in th:text-attributen wilt gebruiken, moet u de syntaxis met dubbele haakjes gebruiken.

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

(Ze worden automatisch toegepast op th:field attributen)

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


Antwoord 3, autoriteit 11%

Als je een voorbeeld wilt tonen = 20-11-2017

U kunt gebruiken:

th:text="${#temporals.format(notice.date,'dd-MM-yyyy')}

Antwoord 4, autoriteit 3%

je moet Thymeleaf opmaak milliseconden gebruiken

<td th:text="${#dates.format(new java.util.Date(transaction.documentDate), 'dd-MMM-yy')}"></td>

Antwoord 5, autoriteit 2%

Wat betreft de afhankelijkheden,

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>3.0.12.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring5</artifactId>
    <version>3.0.12.RELEASE</version>
</dependency>

Als u LocalDate, LocalDateTimeof een andere klasse van het nieuwe Java 8 Date-pakket gebruikt, moet u deze extra afhankelijkheid toevoegen,

<dependency>
    <groupId>org.thymeleaf.extras</groupId>
    <artifactId>thymeleaf-extras-java8time</artifactId>
    <version>3.0.4.RELEASE</version>
</dependency>

Wat betreft het type van uw datumobject, als u Dategebruikt,

<td th:text="${#dates.format(sprint.releaseDate, 'dd-MM-yyyy HH:mm')}">30-12-2021 23:59</td>

Als u LocalDateof LocalDateTimegebruikt,

<td th:text="${#temporals.format(sprint.releaseDate, 'dd-MM-yyyy HH:mm')}">30-12-2021 23:59</td>

Er is nog steeds altijd de mogelijkheid om een object van DateTimeFormatterdoor te geven in uw modeleigenschappen

// Inside your controller
context.setVariable("df", DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm"));
// or
model.addAttribute("df", DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm"));
// Then, in your template
<td th:text="${df.format(sprint.releaseDate)}">30-12-2021 23:59</td>

Dit artikelkan je misschien verder helpen.


Antwoord 6

th:text=”${#calendars.format(store.someDate(),’dd MMMM jjjj’)}”

API: https://www.thymeleaf.org/doc /tutorials/3.0/usingthymeleaf.html#calendars

Other episodes