JSTL 提供了格式化和解析数字和日期的标签,我们讨论里面有:formatNumber、formatDate、parseNumber及
parseDate。

formatNumber标签

formatNumber标签用于格式化数字,百分比,货币。该标签用指定的格式或精度来格式化数字。(将数值型数据转
换成指定格式的字符串类型)

语法:
value=”
type=”
var=”
scope=”“/>
image.png
注意:
(1)如果设置了var属性,则格式化后的结果不会输出,需要通过el表达式获取var对应的限域变量名;
(2)默认的类型(type)的取值为number,可取值:number数值型、percent百分比类型、currency货币型 ;

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  4. <html>
  5. <head>
  6. <title>JSTL标签的使用</title>
  7. </head>
  8. <body>
  9. <fmt:formatNumber value="12" type="number" var="num"></fmt:formatNumber>${num} <br>
  10. <fmt:formatNumber value="12" type="percent"></fmt:formatNumber><br>
  11. <fmt:formatNumber value="12" type="currency"></fmt:formatNumber><br>
  12. <!-- 设置时区 -->
  13. <fmt:setLocale value="en_US"></fmt:setLocale>
  14. <fmt:formatNumber value="12" type="currency"></fmt:formatNumber><br>
  15. </body>
  16. </html>

运行结果:
image.png

formatDate标签

formatDate标签用于使用不同的方式格式化日期。(将Date型数据转换成指定格式的字符串类型)
语法:
value=”
type=”
dateStyle=”
timeStyle=”
pattern=”
timeZone=”
var=”
scope=”“/>

属性:
image.png
image.png
用的比较多的是自定义日期、时间格式;

实例代码:

  1. <%@ page import="java.util.Date" %>
  2. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  4. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  5. <html>
  6. <head>
  7. <title>JSTL标签的使用</title>
  8. </head>
  9. <body>
  10. <%
  11. request.setAttribute("myDate",new Date());
  12. %>
  13. <fmt:formatDate value="${myDate}"/>
  14. <fmt:formatDate value="${myDate }" type="date"/><br/>
  15. <fmt:formatDate value="${myDate }" type="time"/><br/>
  16. <fmt:formatDate value="${myDate }" type="both"/><br/>
  17. <fmt:formatDate value="${myDate }" type="both" dateStyle="full"/><br/>
  18. <fmt:formatDate value="${myDate }" type="both" dateStyle="long"/><br/>
  19. <fmt:formatDate value="${myDate }" type="both" dateStyle="short"/><br/>
  20. <fmt:formatDate value="${myDate }" type="both" timeStyle="full"/><br/>
  21. <fmt:formatDate value="${myDate }" type="both" timeStyle="long"/><br/>
  22. <fmt:formatDate value="${myDate }" pattern="HH:mm yyyy/MM/dd"/><br/>
  23. </body>
  24. </html>

运行结果:
image.png

parseNumber标签

parseNumber标签用来解析数字,百分数,货币。(parseNumber 标签可以将数字、货币或百分比类型的字符串
转换成数值型)
语法:
value=”
type=”
var=”
scope=”“/>

属性:
image.png

  1. <%@ page import="java.util.Date" %>
  2. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  4. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  5. <html>
  6. <head>
  7. <title>JSTL标签的使用</title>
  8. </head>
  9. <body>
  10. <fmt:parseNumber value="100" /> <br>
  11. <fmt:parseNumber value="100" type="number" /> <br>
  12. <fmt:parseNumber value="100%" type="percent" /> <br>
  13. <fmt:parseNumber value="¥10.00" type="currency" /> <br>
  14. </body>
  15. </html>

运行结果:
image.png

parseDate标签

parseDate标签用于解析日期。(将指定格式的字符串转换成Date类型)
语法:
value=”
type=”
dateStyle=”
timeStyle=”
pattern=”
var=”
scope=”“/>

image.png
代码:

  1. <%@ page import="java.util.Date" %>
  2. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  4. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  5. <html>
  6. <head>
  7. <title>JSTL标签的使用</title>
  8. </head>
  9. <body>
  10. <fmt:parseDate value="2020-01-06" type="date" /> <br>
  11. <fmt:parseDate value="2020/01/06" pattern="yyyy/MM/dd" /> <br>
  12. </body>
  13. </html>

运行结果:
image.png