使用fmt:formatDate格式化日期
时间:2018-11-15 12:57:31 来源:igfitidea点击:
日期和时间在国际化web应用程序中非常重要。
不同的国家都有自己表示日期和时间的格式
JSTL提供了有一个名为<fmt:formatDate>
的操作,来根据指定的地区对日期和时间进行格式化。
下面是<fmt:formatDate>
操作的属性表:
名称 | 必须 | 说明 |
---|---|---|
value | yes | 要格式化的日期或时间值。 |
type | no | 日期和时间是否用于格式化 |
dateStyle | no | 仅当日期值用于格式化时,为日期指定预定义的格式化样式。 |
timeStyle | no | 仅当时间值用于格式化时,为时间指定预定义的格式化样式。 |
pattern | no | 指定格式化日期和/或时间的标准自定义模式 |
timeZone | no | 如果时间值用于格式化,则此属性指定该时间值的时区。 |
var | no | 此属性用于导出作用域变量,该变量将格式化的日期和/或时间存储为字符串 |
scope | no | 指定var的作用域。 |
使用<fmt:formatDate>
操作在不同地区格式化日期示例
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html> <head> <title>格式化日期</title> </head> <body> <jsp:useBean id="now" class="java.util.Date" /> <p> 在美国的日期格式 <fmt:setLocale value="en_US" /> <fmt:formatDate value="${now}" /> </p> <p> 在中国的日期格式 <fmt:setLocale value="zh_CN" /> <fmt:formatDate value="${now}"/> </p> </body> </html>
输出:
在美国的日期格式 Nov 26, 2018 在中国的日期格式 2018-11-26
格式化日期或时间
默认情况下,<fmt:formatDate>
只对日期进行格式化并显示。
如果也想显示时间,那么需要使用type
这个属性。
属性type
有3个值:date
,time
和both
。
格式化并显示时间示例
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html> <head> <title>格式化日期和时间</title> </head> <body> <jsp:useBean id="now" class="java.util.Date" /> <p> 日期 <fmt:formatDate value="${now}" type="date" /> </p> <p> 时间 <fmt:formatDate value="${now}" type="time" /> </p> <p> 日期和时间 <fmt:formatDate value="${now}" type="both" /> </p> </body> </html>
输出:
日期 2018-11-26 时间 10:35:18 日期和时间 2018-11-26 10:35:18
设置日期和时间的格式
在格式化以及显示日期和时间时,还可以自定义它们的样式。
<fmt:formatdate>
的patterns
属性用于使用自定义样式。timeStyle
和dateStyle
属性用于指定要使用的预定义样式。
样式使用到的代码编码表:
编码 | 说明 |
---|---|
G | 时代(公元, 公元前,等等) |
y | 年份(两位数年份yy,四位数年份yyyy) |
M | 月份(数字月份使用,月份名称或缩写使用MMM或更长) |
w | 一年中的一周(ww为两位数) |
W | 一个月中的那一周 |
D | 年中的某一天(DDD为三位数) |
d | 每月的第一天(两位数使用dd) |
F | 一周中的数字日 |
E | 一周中的某一天(全名使用EEEE或更长) |
a | AM / PM 指示器(指示上午下午) |
H | 小时数(0-23) |
k | 小时数(1-24) |
K | 小时 a.m或小时 p.m.(0-11) |
h | 小时 a.m或小时 p.m.(1-12) |
m | 分钟 |
s | 秒 |
S | 毫秒 |
z | 完整的时区名称 |
Z | RFC 822时区(例如,0500) |
使用自定义时间格式示例
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html> <head> <title>格式化日期和时间</title> </head> <body> <jsp:useBean id="now" class="java.util.Date" /> <p> 短时间格式: <fmt:formatDate value ="${now}" type="both" timeStyle="short" dateStyle="full" /> </p> <p> 长时间格式: <fmt:formatDate value ="${now}" type="time" timeStyle="long" /> </p> <p> 自定义时间格式: <fmt:formatDate value ="${now}" pattern="EEEE hh:mm a" /> </p> <p> 自定义时间格式 年月日分时秒: <fmt:formatDate value ="${now}" pattern="yyyy-MM-dd HH:mm:ss" /> </p> </body> </html>
输出:
短时间格式: 2018年11月26日 星期二 上午12:51 长时间格式: 上午12时51分46秒 自定义时间格式: 星期二 12:51 上午 自定义时间格式 年月日分时秒: 2018-11-26 00:51:46