JSTL的⽇期格式化标签fmt
在写Java Web项⽬时,需要在某个页⾯显⽰⽣⽇(或者其它⽇期),⽇期以jaav.util.Date对象的形式存放在了request的属性中,如果直接⽤EL表达式(假设是${birthday})将⽇期取出作为input标签的value值,显⽰出的⽇期会是下⾯这样:
如果想让按照⾃⼰指定的格式显⽰⽇期,可以使⽤JSTL提供的⽇期格式化标签 <fmt:formatDate>
⽤法:    ⾸先在jsp页⾯前⾯引⼊fmt的标签库
<%@ taglib prefix="fmt" uri="java.sun/jsp/jstl/fmt" %>
fmt标签⽤法
语法规范:
<fmt:formatDate
value="<string>"
type="<string>"
dateStyle="<string>"
timeStyle="<string>"
pattern="<string>"
timeZone="<string>"
var="<string>"
scope="<string>"/>
属性⽤法
属性描述是否必要默认值
value要显⽰的⽇期是⽆
type DATE, TIME, 或 BOTH否date
dateStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT否default
timeStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT否default
pattern⾃定义格式模式否⽆
timeZone显⽰⽇期的时区否默认时区
var存储格式化⽇期的变量名否显⽰在页⾯
scope存储格式化⽇志变量的范围否页⾯
标签格式
代码描述实例
G时代标志AD
y不包含纪元的年份。如果不包含纪元的年份⼩于 10,则显⽰不具有前导零的年份。2002
M⽉份数字。⼀位数的⽉份没有前导零。April & 04
d⽉中的某⼀天。⼀位数的⽇期没有前导零。20
h12 ⼩时制的⼩时。⼀位数的⼩时数没有前导零。12
H24 ⼩时制的⼩时。⼀位数的⼩时数没有前导零。0
m分钟。⼀位数的分钟数没有前导零。45
s秒。⼀位数的秒数没有前导零。52
S毫秒970
E周⼏Tuesday
D⼀年中的第⼏天180
F⼀个⽉中的第⼏个周⼏  2 (⼀个⽉中的第⼆个星期三) w⼀年中的第⼏周r27
el表达式获取值W⼀个⽉中的第⼏周2
a    a.m./p.m. 指⽰符PM
k⼩时(12 ⼩时制的⼩时)24
K⼩时(24 ⼩时制的⼩时)0
z时区中部标准时间
'转义⽂本
''单引号
(摘⾃)
按照以上⽂档,就可以将原来的⽣⽇表单改成
<input value="<fmt:formatDate pattern="yyyy-MM-dd" value="${user.birthday}"/>  >
然后表单就变成设定的格式了: