您的位置:首页 > Web前端 > JavaScript

JSTL I18N 格式标签库 使用之一_____数字日期格式化

2015-09-21 09:29 567 查看
在写这篇文章之前,看见了一个写的非常详细的博客,基本上是把书上的东西一字不落的复制在了博客上,看起来很方便。地址:http://blog.sina.com.cn/s/blog_4f925fc30101820w.html

不过,我还是喜欢自己总结一下。 I18N格式标签库:I18N-capable formation tags library.它可以根据发出请求的客户端地域的不同来显示不同的语言。同时还提供了格式化数据和日期的方法。引入该标签库的方法为:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

I18N格式标签库提供了11个标签,这些 标签从功能上可以划分为3类如下:

1)数字日期格式化。formatNumber标签、formatData标签、parseNumber标签、parseDate标签、timeZone标签、setTimeZone标签。

2)读取消息资源。bundle标签、message标签、setBundle标签。

3)国际化。setlocale标签、requestEncoding标签。

1.<frm:formatNumber/>标签

该标签依据特定的区域将数字改变为不同的格式来显示。

【语法】:

<frm:formatNumber value=”被格式化的数据”[type=”number|currency|percent”]

[pattern=”pattern”]

[currencyCode=”code”]

[currencySymbol=”symbol”]

[groupingUsed=”true|false”]

[maxIntergerDigits=”maxDigits”]

[minIntergerDigits=”minDigits”]

[maxFractionDigits=”maxDigits”]

&nbs
1fa47
p; [minFractionDigits=”minDigits”]

[var=”name”]

[scope=page|request|session|application]

/>



其中,Type属性的类型见下表:



您或许会使用pattern属性。这个属性可以让您在对数字编码时包含指定的字符。接下来的表格中列出了这些字符。
符号描述
0代表一位数字
E使用指数格式
#代表一位数字,若没有则显示0
.小数点
,数字分组分隔符
;分隔格式
-使用默认负数前缀
%百分数
?千分数
¤货币符号,使用实际的货币符号代替
X指定可以作为前缀或后缀的字符
'在前缀或后缀中引用特殊字符
举个例子:



1 <%@ page language="java" pageEncoding="gbk"%>
2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
4 <html>
5     <head>
6         <title>I18N标签库</title>
7     </head>
8     <body>
9         <h4 align="center">
10             <c:out value="<frm:number>标签的使用"></c:out>
11         </h4>
12         <hr>
13         <table border=1 cellpadding="0" cellspacing="0" align="center">
14             <tr align="center">
15                 <td width="100">
16                     类型
17                 </td>
18                 <td width="100">
19                     使用数据
20                 </td>
21                 <td width="100">
22                     结果
23                 </td>
24                 <td width="300">
25                     说明
26                 </td>
27             </tr>
28             <tr>
29                 <td>
30                     数字格式化
31                 </td>
32                 <td>
33                     108.75
34                 </td>
35                 <td>
36                     <fmt:formatNumber type="number" pattern="###.#">108.75</fmt:formatNumber>
37                 </td>
38                 <td>
39                     使用pattern可以定义显示的样式。本例设定为###.#小数部分将使用四舍五入法。
40                 </td>
41             </tr>
42             <tr>
43                 <td>
44                     数字格式化
45                 </td>
46                 <td>
47                     9557
48                 </td>
49                 <td>
50                     <fmt:formatNumber type="number" pattern="#.####E0">9557</fmt:formatNumber>
51                 </td>
52                 <td>
53                     使用科学计数法。
54                 </td>
55             </tr>
56             <tr>
57                 <td>
58                     数字格式化
59                 </td>
60                 <td>
61                     9557
62                 </td>
63                 <td>
64                     <fmt:formatNumber type="number">9557</fmt:formatNumber>
65                 </td>
66                 </td>
67                 <td>
68                     使用默认分组。
69                 </td>
70             </tr>
71             <tr>
72                 <td>
73                     数字格式化
74                 </td>
75                 <td>
76                     9557
77                 </td>
78                 <td>
79                     <fmt:formatNumber type="number" groupingUsed="false">9557</fmt:formatNumber>
80                 </td>
81                 <td>
82                     不使用分组。
83                 </td>
84             </tr>
85             <tr>
86                 <td>
87                     数字格式化
88                 </td>
89                 <td>
90                     9557
91                 </td>
92                 <td>
93                     <fmt:formatNumber type="number" maxIntegerDigits="3">9557</fmt:formatNumber>
94                 </td>
95                 <td>
96                     使用位数限定,根据指定的位数显示,其他数字忽略。例如:9不被显示。
97                 </td>
98             </tr>
99             <tr>
100                 <td>
101                     百分比格式化
102                 </td>
103                 <td>
104                     0.98
105                 </td>
106                 <td>
107                     <fmt:formatNumber type="percent">0.98</fmt:formatNumber>
108                 </td>
109                 <td>
110                     用百分比形式显示一个数据。
111                 </td>
112             </tr>
113             <tr>
114                 <td>
115                     货币格式化
116                 </td>
117                 <td>
118                     188.88
119                 </td>
120                 <td>
121                     <fmt:formatNumber type="currency">188.8</fmt:formatNumber>
122                 </td>
123                 <td>
124                     将一个数据转化为货币形式输出。
125                 </td>
126             </tr>
127             <tr>
128                 <td>
129                     存储数据
130                 </td>
131                 <td>
132                     188.88
133                 </td>
134                 <td>
135                     <fmt:formatNumber type="currency" var="money">188.8</fmt:formatNumber>
136                     <c:out value="${money}"></c:out>
137                 </td>
138                 <td>
139                     存储的money的值为${money}
140                 </td>
141             </tr>
142         </table>
143     </body>
144 </html>


显示结果如下:



2.<frm:parseNumber>标签

将格式化后的数字、货币、百分比都转化为数字类型。

【语法】:

<fmt:parseNumber value="number" [type=”number|currency|percent”]

[pattern=”pattern”]

&nbs
31d43
p; [parseLocale=”locale”]

[intergerOnly=”true|false”]

[scope=”page|request|session|application”]

/>



举个例子:



1 <%@ page language="java" pageEncoding="gbk"%>
2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
4 <html>
5     <head>
6         <title>I18N标签库</title>
7     </head>
8     <body>
9         <h4>
10             <c:out value="<frm:parseNumber>标签的使用"></c:out>
11         </h4>
12         <hr>
13     </body>
14     <fmt:formatNumber type="currency" var="money">188.8</fmt:formatNumber>
15     <li>
16         格式化前的数据为:
17         <c:out value="${money}"></c:out>
18         <fmt:parseNumber var="money" type="currency">${money}</fmt:parseNumber>
19         <li>
20             格式化后的数据为:
21             <c:out value="${money}"></c:out>
22             <li>
23                 可以对格式化的后的数据进行运算:
24                 <c:out value="${money+200}"></c:out>
25                 <li>
26                     对百分比进行格式化98%为:
27                     <fmt:parseNumber type="percent">98%</fmt:parseNumber>
28 </html>


显示结果:



3.<fmt:formatDate>标签

该标签主要用来格式化日期和时间。

【语法】:

<fmt: formatDate value=”date” [type=”time|date|both”]

[pattern=”pattern”]

[dateStyle=”default|short|medium|long|full”]

[timeStyle=”default|short|medium|long|full”]

[timeZone=”timeZone”]

[var=”name”]

[scope=”page|request|session|application”]

/>



其中 type 属性类型有:



<fmt:formatDate> 标签格式模式
代码描述实例
G
时代标志
AD
y
不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
2002
M
月份数字。一位数的月份没有前导零。
April & 04
d
月中的某一天。一位数的日期没有前导零。
20
h
12 小时制的小时。一位数的小时数没有前导零。
12
H
24 小时制的小时。一位数的小时数没有前导零。
0
m
分钟。一位数的分钟数没有前导零。
45
s
秒。一位数的秒数没有前导零。
52
S
毫秒
970
E
周几
Tuesday
D
一年中的第几天
180
F
一个月中的第几个周几
2 (一个月中的第二个星期三)
w
一年中的第几周r
27
W
一个月中的第几周
2
a
a.m./p.m. 指示符
PM
k
小时(12 小时制的小时)
24
K
小时(24 小时制的小时)
0
z
时区
中部标准时间
'
转义文本
''
单引号
举个例子:



1 <%@ page language="java" pageEncoding="gbk"%>
2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
4 <jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
5 <html>
6     <head>
7         <title>I18N标签库</title>
8     </head>
9     <body>
10         <fmt:formatDate value="${date}"></fmt:formatDate>
11         <br>
12         <fmt:formatDate value="${date}" type="both"></fmt:formatDate>
13         <br>
14         <fmt:formatDate value="${date}" type="both" dateStyle="default"
15             timeStyle="default"></fmt:formatDate>
16         <br>
17         <fmt:formatDate value="${date}" type="both" dateStyle="short"
18             timeStyle="short"></fmt:formatDate>
19         <br>
20         <fmt:formatDate value="${date}" type="both" dateStyle="long"
21             timeStyle="long"></fmt:formatDate>
22         <br>
23         <fmt:formatDate value="${date}" type="both" dateStyle="full"
24             timeStyle="full"></fmt:formatDate>
25         <br>
26         <fmt:formatDate value="${date}" type="both" dateStyle="full"
27             timeStyle="full"></fmt:formatDate>
28         <br>
29     </body>
30 </html>


显示结果:



4.<fmt:parseDate>标签

<fmt:parseDate>标签主要将字符串类型的时间或日期转化为时间或日期对象。

【语法】:

<fmt:parseDate value=”date” [type=”time|date|both”]

[pattern=”pattern”]

[parseLocale=”locale”]

[dateStyle=”default|short|medium|long|full”]

[timeStyle=”default|short|medium|long|full”]

[timeZone=”timezone”]

[var=”name”]

[scope=”page|request|session|application”]

/>



举个例子:



1 <%@ page language="java" pageEncoding="gbk"%>
2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
4 <jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
5 <html>
6     <head>
7         <title>I18N标签库</title>
8     </head>
9     <body>
10         <H4>
11             <c:out value="<frm:parseDate>标签的使用"></c:out>
12         </H4>
13         <hr>
14         <fmt:formatDate value="${date}" var="a" type="both" dateStyle="full"
15             timeStyle="full"></fmt:formatDate>
16         <fmt:parseDate var="b" type="both" dateStyle="full" timeStyle="full">
17 ${a}
18 </fmt:parseDate>
19         <%
20             out.println(pageContext.getAttribute("b").toString());
21             out.println("<br>");
22             out.println(pageContext.getAttribute("b").hashCode());
23 %>
24     </body>
25 </html>


显示结果:



5. <fmt:setTimeZone>标签

该标签用于设定默认时区,或者将时区存储在指定的JSP范围内。

【语法】

<fmt:setTimeZone value="value" [var="name"] [scope="page|request|session|application"]/>

举个例子:

<fmt:setTimeZone value="EST" scope="session"> 中国使用的时区为CST。有关TimeZone的说明在JDK帮助文档的 java.util.TimeZone 类。

6. <fmt:timeZone>标签

该标签主要用于设置标签体内使用的时区。

【语法】

<fmt:timeZone value="timeZone">

……

</fmt:timeZone>

该标签只会应用到标签体内使用的时区,为标签外部不产生影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jstl 标签