Thymeleaf對象的使用:日期對象

来源:https://www.cnblogs.com/gdjlc/archive/2019/10/13/11668841.html
-Advertisement-
Play Games

Thymeleaf在模板中使用 #dates 或 #calendars 兩個對象來處理日期,這兩個對象大部分類似。 ...


Thymeleaf在模板中使用 #dates 或 #calendars 兩個對象來處理日期,這兩個對象大部分類似。

開發環境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8

新建一個名稱為demo的Spring Boot項目。

1、pom.xml
加入Thymeleaf依賴

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

2、src/main/resources/application.yml
設置模板緩存為false,這樣修改html頁面後刷新瀏覽器能馬上看到結果

spring:
  thymeleaf:
    cache: false

3、src/main/java/com/example/demo/TestController.java

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.*;

@Controller
public class TestController {
    @RequestMapping("/")
    public String test(Model model){
        Calendar cal = Calendar.getInstance();
        Date date = cal.getTime();

        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();
        cal1.add(Calendar.DATE, 1);
        cal2.add(Calendar.DATE, 2);

        Date[] arr = new Date[]{cal1.getTime(), cal2.getTime()};
        List list = Arrays.asList(arr);
        Set set = new HashSet(list);

        model.addAttribute("date", date);
        model.addAttribute("cal", cal);
        model.addAttribute("arr", arr);
        model.addAttribute("list", list);
        model.addAttribute("set", set);

        return "test";
    }
}

4、src/main/resources/templates/test.html

<div>格式化日期<div>
format(date)
<div th:text="${#dates.format(date)}"></div>
formatISO(date)
<div th:text="${#dates.formatISO(date)}"></div>
format(date,'yyyy-MM-dd HH:mm:ss')
<div th:text="${#dates.format(date,'yyyy-MM-dd HH:mm:ss')}"></div>
format(cal)
<div th:text="${#calendars.format(cal)}"></div>
formatISO(date)
<div th:text="${#calendars.formatISO(date)}"></div>
format(date,'yyyy-MM-dd HH:mm:ss')
<div th:text="${#calendars.format(date,'yyyy-MM-dd HH:mm:ss')}"></div>
arrayFormat(arr)
<div th:each="date : ${#dates.arrayFormat(arr)}">
    <div th:text="${date}"></div>
</div>
listFormat(list,'yyyy-MM-dd')
<div th:each="date : ${#dates.listFormat(list,'yyyy-MM-dd')}">
    <div th:text="${date}"></div>
</div>
setFormat(set)
<div th:each="date : ${#dates.setFormat(set)}">
    <div th:text="${date}"></div>
</div>
<div>獲取日期<div>
day(date) 第幾天
<div th:text="${#dates.day(date)}"></div>
month(date) 月份
<div th:text="${#dates.month(date)}"></div>
monthName(date) 月份名稱
<div th:text="${#dates.monthName(date)}"></div>
monthNameShort(date) 月份名稱簡稱
<div th:text="${#dates.monthNameShort(date)}"></div>
year(date) 年份
<div th:text="${#dates.year(date)}"></div>
dayOfWeek(date) 星期幾索引
<div th:text="${#dates.dayOfWeek(date)}"></div>
dayOfWeekName(date) 星期幾名稱
<div th:text="${#dates.dayOfWeekName(date)}"></div>
dayOfWeekNameShort(date) 星期幾名稱簡稱
<div th:text="${#dates.dayOfWeekNameShort(date)}"></div>
hour(date) 時
<div th:text="${#dates.hour(date)}"></div>
minute(date) 分
<div th:text="${#dates.minute(date)}"></div>
second(date) 秒
<div th:text="${#dates.second(date)}"></div>
millisecond(date) 毫秒
<div th:text="${#dates.millisecond(date)}"></div>

瀏覽器訪問:http://localhost:8080
頁面輸出:

格式化日期
format(date)
2019年10月13日 下午10時35分32秒
formatISO(date)
2019-10-13T22:35:32.484+08:00
format(date,'yyyy-MM-dd HH:mm:ss')
2019-10-13 22:35:32
format(cal)
2019年10月13日 下午10時35分32秒
formatISO(date)
2019-10-13T22:35:32.484+08:00
format(date,'yyyy-MM-dd HH:mm:ss')
2019-10-13 22:35:32
arrayFormat(arr)
2019年10月14日 下午10時35分32秒
2019年10月15日 下午10時35分32秒
listFormat(list,'yyyy-MM-dd')
2019-10-14
2019-10-15
setFormat(set)
2019年10月15日 下午10時35分32秒
2019年10月14日 下午10時35分32秒
獲取日期
day(date) 第幾天
13
month(date) 月份
10
monthName(date) 月份名稱
十月
monthNameShort(date) 月份名稱簡稱
十月
year(date) 年份
2019
dayOfWeek(date) 星期幾索引
1
dayOfWeekName(date) 星期幾名稱
星期日
dayOfWeekNameShort(date) 星期幾名稱簡稱
星期日
hour(date) 時
22
minute(date) 分
35
second(date) 秒
32
millisecond(date) 毫秒
484

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [TOC]   在python中,實際書寫代碼還有很多需要註意的東西,有時候會讓代碼的執行效率提高,下麵就讓我們來學習PEP 8風格以及Python編程慣例的一些知識吧。 一:PEP 8風格   PEP是Python Enhancement Proposal的 ...
  • pythdon day 10 2019/10/13 學習資料來自老男孩教育 [TOC] 1. 反射補充 反射模擬網路瀏覽器登錄 16. 面向對象 16.1 面向對象初步介紹 面對對象(object oriented programming,OOP)編程的思想主要是針對大型軟體設計而來的。面向對象編程 ...
  • ​一、 1.多行註釋:CTRL + shift + / 2.當一個類中沒有定義任何構造方法的話,系統預設給該類提供一個無參數的構造方法,這個構造方法被稱為預設構造器。 編譯通過,我們事先定義了一個類User,裡面沒有構造方法。 3.當一個類顯式的將構造方法定義出來了,那麼系統則不再預設提供預設的構造 ...
  • 主要用代碼註釋來初步學習OpenCV-Python 1. 圖片初使用(結合matplotlib) 2. 視頻初使用 ...
  • 新聞 ".NET架構指南" "美妙的WebSharper:學術刊物" ".NET Core 3.0中Blazor Server的方案與性能" "Mono 6.4.0發佈說明" "CapitolFSharp召集發言人" 視頻及幻燈片 "函數式反應型編程中的實時流分析" "領域模型函數式化" "臨近十月 ...
  • 錯誤信息: 解決方法: 找到對應文件 找到出錯語句: 去掉末尾那個逗號即可。 ...
  • 範例:JDBC查詢 package com.hsp; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import jav ...
  • 1.面向對象和麵向過程的區別? 面向過程:面向過程性能比面向對象高 面向對象:面向對象易維護、易復用、易擴展 面向過程:面向過程性能比面向對象高 面向對象:面向對象易維護、易復用、易擴展 2.Java 語言有哪些特點? 簡單易學、面向對象(封裝,繼承,多態)、平臺無關性( Java 虛擬機實現平臺無 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...