前言
- thymeleaf 3.0
- spring boot 2.0.0RELEASE
无国际化:格式化日期
<p>
Today is: <span th:text="${#calendars.format(today,'yyyy-MM-dd')}">2019-08-01</span>
</p>
国际化:格式化日期
spring boot国际化:https://www.cnblogs.com/GoodHelper/p/6824492.html
Thymeleaf国际化:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#a-multi-language-welcome
安装Thymeleaf国际化方法,需要在Thymeleaf模板所在目录创建同名的properties文件。模板名为home.html,同名的properties文件为home_zh.properties(中文)、home_en.properties(英文)。
home_zh.properties:
date.format=yyyy年MM月dd日
home_en.properties:
date.format=MMMM dd'','' yyyy
准备好同名的properties文件后,在Thymeleaf中格式化日期:
<p th:with="df=#{date.format}">
Today is: <span th:text="${#calendars.format(today,df)}">2019-08-01</span>
</p>
或
<p>
Today is:
<span th:with="df=#{date.format}"
th:text="${#calendars.format(today,df)}">2019-08-01</span>
</p>
th:field 陷阱
<div class="form-group">
<label class="col-sm-3 control-label">钉钉提报时间:</label>
<div class="col-sm-8">
<input name="dingTime" th:field="*{#calendars.format(dingTime,'yyyy-MM-dd')}" class="form-control" type="text" readonly="readonly" >
</div>
</div>
th:field
这样写发生错误。将th:field
改为th:value
后正常。
Thymeleaf中的calendars对象
/*
* ======================================================================
* See javadoc API for class org.thymeleaf.expression.Calendars
* ======================================================================
*/
/*
* Format calendar with the standard locale format
* Also works with arrays, lists or sets
*/
${#calendars.format(cal)}
${#calendars.arrayFormat(calArray)}
${#calendars.listFormat(calList)}
${#calendars.setFormat(calSet)}
/*
* Format calendar with the ISO8601 format
* Also works with arrays, lists or sets
*/
${#calendars.formatISO(cal)}
${#calendars.arrayFormatISO(calArray)}
${#calendars.listFormatISO(calList)}
${#calendars.setFormatISO(calSet)}
/*
* Format calendar with the specified pattern
* Also works with arrays, lists or sets
*/
${#calendars.format(cal, 'dd/MMM/yyyy HH:mm')}
${#calendars.arrayFormat(calArray, 'dd/MMM/yyyy HH:mm')}
${#calendars.listFormat(calList, 'dd/MMM/yyyy HH:mm')}
${#calendars.setFormat(calSet, 'dd/MMM/yyyy HH:mm')}
/*
* Obtain calendar properties
* Also works with arrays, lists or sets
*/
${#calendars.day(date)} // also arrayDay(...), listDay(...), etc.
${#calendars.month(date)} // also arrayMonth(...), listMonth(...), etc.
${#calendars.monthName(date)} // also arrayMonthName(...), listMonthName(...), etc.
${#calendars.monthNameShort(date)} // also arrayMonthNameShort(...), listMonthNameShort(...), etc.
${#calendars.year(date)} // also arrayYear(...), listYear(...), etc.
${#calendars.dayOfWeek(date)} // also arrayDayOfWeek(...), listDayOfWeek(...), etc.
${#calendars.dayOfWeekName(date)} // also arrayDayOfWeekName(...), listDayOfWeekName(...), etc.
${#calendars.dayOfWeekNameShort(date)} // also arrayDayOfWeekNameShort(...), listDayOfWeekNameShort(...), etc.
${#calendars.hour(date)} // also arrayHour(...), listHour(...), etc.
${#calendars.minute(date)} // also arrayMinute(...), listMinute(...), etc.
${#calendars.second(date)} // also arraySecond(...), listSecond(...), etc.
${#calendars.millisecond(date)} // also arrayMillisecond(...), listMillisecond(...), etc.
/*
* Create calendar (java.util.Calendar) objects from its components
*/
${#calendars.create(year,month,day)}
${#calendars.create(year,month,day,hour,minute)}
${#calendars.create(year,month,day,hour,minute,second)}
${#calendars.create(year,month,day,hour,minute,second,millisecond)}
${#calendars.createForTimeZone(year,month,day,timeZone)}
${#calendars.createForTimeZone(year,month,day,hour,minute,timeZone)}
${#calendars.createForTimeZone(year,month,day,hour,minute,second,timeZone)}
${#calendars.createForTimeZone(year,month,day,hour,minute,second,millisecond,timeZone)}
/*
* Create a calendar (java.util.Calendar) object for the current date and time
*/
${#calendars.createNow()}
${#calendars.createNowForTimeZone()}
/*
* Create a calendar (java.util.Calendar) object for the current date (time set to 00:00)
*/
${#calendars.createToday()}
${#calendars.createTodayForTimeZone()}