加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

JSP JSTL <fmt:formatDate>标签:格式化时间

发布时间:2020-12-15 02:41:21 所属栏目:Java 来源:网络整理
导读:fmt:formatDate 标签可以把字符串类型的数字解析成数字类型的数值,使其可以组合算术运算形成其他数值结果。 语法: fmt:formatDate value="date" ? [type="{time|date|both}"] ? [dateStyle="{default|short|medium|long|full}"] ? [timeStyle="{default|sho
<fmt:formatDate> 标签可以把字符串类型的数字解析成数字类型的数值,使其可以组合算术运算形成其他数值结果。

语法:

<fmt:formatDate value="date"
? [type="{time|date|both}"]
? [dateStyle="{default|short|medium|long|full}"]
? [timeStyle="{default|short|medium|long|full}"]
? [pattern="customPattern"]
? [timeZone="timeZone"]
? [var="varName"]
? [scope="{page|request|session|application}"]/>


<fmt:formatDate> 标签各属性的详细介绍如表所示。

<fmt:formatDate>标签属性
属性 类型 描述 引用 EL
value java.util.Date 将要格式化的日期对象 可以
type String 指定显示日期对象的日期还是时间,可以两者都显示,它的取值可选time(时间)、date(日期)和both(两者)均有 可以
pattern String 模式字符串 可以
dateStyle String 指定日期的显示方式 可以
timeStyle String 指定时间的显示方式 可以
timeZone String,java.util.TimeZone 设置时区 可以
var String 存储格式化后日期对象的格式 不可以
scope String 变量的作用范围 不可以

示例1

本示例应用 <fmt:formatDate> 标签将当前时间格式化成不同的时间格式,关键代码如下:
<%@page import="java.util.Date"%>
  <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
    <%request.setAttribute("date",new Date());%>
      <!--显示2008-11-29 11:28:12-->
      <fmt:formatDate value="${date}" type="both"/>
      <!--显示2008年11月29日星期六上午11时28分12秒CST-->
      <fmt:formatDate value="${date}" dateStyle="full" timeStyle="full" type="both"/>
      <fmt:formatDate value="${date}" type="date"/><!--显示2008-11-29-->
      <!--显示2008年11月29日-->
      <fmt:formatDate value="${date}" dateStyle="long" type="date"/>
      <!--显示08-11-29-->
      <fmt:formatDate value="${date}" dateStyle="short" type="date"/>
      <fmt:formatDate value="${date}" type="time"/><!--显示11:28:12-->
      <!--显示午11时28分12秒-->
      <fmt:formatDate value="${date}" timeStyle="long" type="time"/>
      <!--显示上午11:28-->
      <fmt:formatDate value="${date}" timeStyle="short" type="time"/>

示例2

本示例以北京时间 2008-11-29 11:35:19 为例,设置 timeZone 属性,显示美国太平洋时区的时间,关键代码如下:
<%@page import="java.util.Date"%>
  <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
    <%request.setAttribute("date",new Date());%>
      <!--显示2008-11-28 19:35:19-->
      <fmt:formatDate value="${date}" type="both" timeZone="America/Los_Angeles"/>
      <!--显示2008-11-29 11:35:19-->
      <fmt:formatDate value="${date}" type="both"/>

说明 America/Los_Angeles 表示美国太平洋时区。

示例3

本示例应用 <fmt:formatDate> 标签,在标签中按照自定义的格式输出当前日期时间,关键代码如下:
<%@page import="java.util.Date"%>
  <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
    <%request.setAttribute("date",new Date());%>
      <!--显示20081129 114852-->
      <fmt:formatDate value="${date}" type="both" pattern="yyyyMMdd HHmmss"/>
      <!--显示2008/11/29-->
      <fmt:formatDate value="${date}" type="date" pattern="yyyy/MM/dd"/>

典型应用

本示例使用 <fmt:formatDate> 标签对日期格式化,将实现对所有地区(即不同时区和地点)的日期时间的格式转换。

使用 <fmt:formatDate> 标签的 value 属性设置要格式化的日期,最后使用 <c:forEach> 标签把所有信息迭代到页面中,关键代码如下:
<div align="center">日期格式化标签</div>
<%
  Field[]field = Locale.class.getFields();
  List<Locale>localeList = new ArrayList<Locale>();
  for(int i=0;i<field.length;i++){
    if(field[i].getType().equals(Locale.class)){
      localeList.add((Locale)field[i].get(null));
    }
  }
  request.setAttribute("localeList",localeList);
%>
<table align="center">
  <tr>
    <td>地区缩写</td>
运行结果如下:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读