笔者用的Mybatis,在将数据库中的date取出之后想显示在界面上,但是总是格林尼治时间,看着特别难受,而且当你修改的时候,是不能被识别的,这个就很烦。于是,笔者,找到一个好办法。
使用JSTL fmt数字日期格式化的方式,具体操作如下:
在jsp界面引入标签<%@ taglib uri="/jsp/jstl/fmt" prefix="fmt"%>
这个标签的具体语法如下:
<fmt:formatDatevalue="<string>"type="<string>"dateStyle="<string>"timeStyle="<string>"pattern="<string>"timeZone="<string>"var="<string>"scope="<string>"
<fmt:formatNumber>标签用于根据设定的区域将数据格式化输出;
<fmt:formatDate>标签用于格式化输出日期和时间;
<fmt:parseDate>标签用于把字符串类型的日期和时间转换成日期型数据类型;
<fmt:setTimeZone>标签用于设定默认的时区;
<fmt:timeZone>标签用于设定在本签体内有效的时区;
日期格式数据在jsp页面显示使用如下标签
<fmt:formatDate value="${date}" pattern="yyyy-MM-dd"/>
其中${date}是实际数据中的java.util.Date类型数据
pattern="yyyy-MM-dd" 中的"yyyy-MM-dd"按照标准时间格式字符串定义即可,
可以显示到时分秒即为"yyyy-MM-dd HH:mm:ss"注意其中大小写
数字标签
<fmt:formatNumber value="${num}" pattern="#" type="number"/>
其中${num}是任意的基础数据类型数据,pattern指定当前数字的格式,可以指定格式”#”
(只有整数类型)、”#.#”(带一位小数类型)、” ¥#,###.###”(带千位分割符,和“¥”类型)等等;type指定当前数字的类型,type有number(数值)、currency(货币)、percent(百分数)三种;
数字标签实例
Double num = new Double("123456789012.3456");
整数带千分符显示:
<fmt:formatNumber value="${num}" type="number"/>
整数显示:
<fmt:formatNumber value="${num}" pattern="#" type="number"/>
两位小数舍入显示:
<fmt:formatNumber value="${num}" pattern="#.##" type="number"/>
两位小数舍入,不足两位小数补0显示:
<fmt:formatNumber value="${num}" pattern="#.00" type="number"/>
货币显示:(与number类似扩展pattern)
<fmt:formatNumber value="${num}" type="currency"/>
百分数显示:(与number类似扩展pattern)
<fmt:formatNumber value="${num}" type="percent"/>
实例结果
整数带千分符显示: 123,456,789,012.346
整数显示: 123456789012
两位小数舍入显示: 123456789012.35
两位小数舍入,不足两位小数补0显示: 123456789012.35
货币显示:¥123,456,789,012.35
百分数显示 12,345,678,901,235%
而且,可以用在forech循环里,还可以嵌套在input标签里,非常好用。