`
Jack-chen
  • 浏览: 71200 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

收集整理: JavaScript格式化和解析日期, JSTL格式化和解析日期

    博客分类:
  • Java
阅读更多
JSP开发时, 在页面中格式化和解析日期始终是个头疼的事情. 可以用JSTL和JavaScript搞定.

1. JSTL格式化和解析日期

格式化日期:

<fmt:formatDate value="${model.date}" pattern ="yyyy-MM-dd" >

或者

<fmt:formatDate value="<%=new java.util.Date() %>" pattern ="yyyy-MM-dd" />

取得request参数:

<c:out value="param.参数名"/>

jstl格式化日期标签收藏
JSP Standard Tag Libraries
Formatting and Internationalization
Two form input parameters, 'date' and 'isoDate', are URL-encoded in the link leading to this page. 'isoDate' is formatted according to the ISO8601 standard.
Formatting of numbers and dates is based on the browser's locale setting. Formatting will change if you switch the default language setting from English to French or German, for example. (The browser needs to be restarted, too.)

Library import and parameter capturing:

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

<fmt:parseDate value="${param.date}" var="date" pattern="yyyy/MM/dd:HH:mm:ss>
<fmt:parseDate value="${param.isoDate}" var="isoDate" pattern="yyyyMMdd'T'HHmmss">

The input parameters must match the patterns, or the JSP will thrown an exception. This page does no error handling.

Input parameters:
Date:    2004/04/01:13:30:00   Java format: Thu Apr 01 13:30:00 CST 2004
isoDate: 20040531T235959       Java format: Mon May 31 23:59:59 CDT 2004

Dates
Tag Output
Attribute: value; required. Tag has no body.
<fmt:formatDate value="${date}" type="both"/>

2004-4-1 13:30:00 
<fmt:formatDate value="${isoDate}" type="both"/>

2004-5-31 23:59:59 
Attribute: type; optional. Indicates what to print: date, time, or both.
<fmt:formatDate value="${date}" type="date"/>

2004-4-1 
<fmt:formatDate value="${isoDate}" type="time"/>

23:59:59 
Attribute: dateStyle; optional. Varies the date format.
<fmt:formatDate value="${isoDate}" type="date" dateStyle="default"/>

2004-5-31 
<fmt:formatDate value="${isoDate}" type="date" dateStyle="short"/>

04-5-31 
<fmt:formatDate value="${isoDate}" type="date" dateStyle="medium"/>

2004-5-31 
<fmt:formatDate value="${isoDate}" type="date" dateStyle="long"/>

2004年5月31日 
<fmt:formatDate value="${isoDate}" type="date" dateStyle="full"/>

2004年5月31日 星期一 
Attribute: timeStyle; optional. Varies the time format.
<fmt:formatDate value="${isoDate}" type="time" timeStyle="default"/>

23:59:59 
<fmt:formatDate value="${isoDate}" type="time" timeStyle="short"/>

下午11:59 
<fmt:formatDate value="${isoDate}" type="time" timeStyle="medium"/>

23:59:59 
<fmt:formatDate value="${isoDate}" type="time" timeStyle="long"/>

下午11时59分59秒 
<fmt:formatDate value="${isoDate}" type="time" timeStyle="full"/>

下午11时59分59秒 CDT 
Attribute: pattern; optional. Inidcates date/time custom patterns.
<fmt:formatDate value="${date}" type="both" pattern="EEEE, MMMM d, yyyy HH:mm:ss Z"/>

星期四, 四月 1, 2004 13:30:00 -0600 
<fmt:formatDate value="${isoDate}" type="both" pattern="d MMM yy, h:m:s a zzzz/>

 

2. JavaScript 格式化

来源: http://gwbasic.iteye.com/blog/36904

 

/*
  将String类型解析为Date类型.
  parseDate('2006-1-1') return new Date(2006,0,1)
  parseDate(' 2006-1-1 ') return new Date(2006,0,1)
  parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)
  parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);
  parseDate('2006-1-1 15:14:16.254') return new Date(2006,0,1,15,14,16,254)
  parseDate(' 2006-1-1 15:14:16.254 ') return new Date(2006,0,1,15,14,16,254)
  parseDate('不正确的格式') retrun null
*/
function parseDate(str){
  if(typeof str == 'string'){
    var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);
    if(results && results.length>3)
      return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));
    results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
    if(results && results.length>6)
      return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));
    results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
    if(results && results.length>7)
      return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]),parseInt(results[7]));
  }
  return null;
}

/*
  将Date/String类型,解析为String类型.
  传入String类型,则先解析为Date类型
  不正确的Date,返回 ''
  如果时间部分为0,则忽略,只返回日期部分.
*/
function formatDate(v){
  if(typeof v == 'string') v = parseDate(v);
  if(v instanceof Date){
    var y = v.getFullYear();
    var m = v.getMonth() + 1;
    var d = v.getDate();
    var h = v.getHours();
    var i = v.getMinutes();
    var s = v.getSeconds();
    var ms = v.getMilliseconds();  
    if(ms>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;
    if(h>0 || i>0 || s>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
    return y + '-' + m + '-' + d;
  }
  return '';
}

分享到:
评论

相关推荐

    JSTL学习资料。包含API帮助文档和函数库

    Format库用于格式化和国际化,如日期、数字和货币的格式化,支持多种语言的输出。例如: - `&lt;fmt:formatDate&gt;`:将日期转换为指定格式。 - `&lt;fmt:message&gt;`:获取资源包中的消息。 - `&lt;fmt:setLocale&gt;`:设置当前...

    JSTL的资源包

    2. **I18N & Format标签库**:支持国际化和格式化,如日期、货币、数字的格式化。 3. **XML标签库**:用于XML文档的解析和操作。 4. **Function标签库**:提供一系列函数,可以像在JavaScript中一样在JSP页面中使用...

    总结EL和JSTL

    JSTL 的分类包括核心标签库、国际化/格式化标签库、XML 标签库、数据库标签库和函数标签库。核心标签库提供了一些基本的标签,如 set、remove、out 等。国际化/格式化标签库提供了一些格式化和国际化的标签。XML ...

    JSTL相关资料 需要得拿走。

    2. **I18N and Formatting**:这部分提供了处理国际化和格式化数字、日期等的标签,便于创建多语言的Web应用。 3. **XML**:这个库提供了处理XML文档的标签,包括解析、导航和操作XML数据。 4. **Function**:这个...

    jsp中jstl的jar包

    2. **standard-1.1.2.jar**: 这个jar包是JSTL的EL(Expression Language)支持,也称为JSTL的fmt和fn库,提供了额外的功能,如日期/时间格式化和数组/集合操作。 在实际项目中,为了使用JSTL,我们需要在web.xml...

    JSTL jar包

    2. ** fmt**:用于格式化输出,如日期和数字的格式化,支持国际化和本地化。 3. **sql**:提供了与数据库交互的标签,可以执行SQL查询、更新等操作。 4. **xml**:处理XML文档,提供了解析、转换和操作XML的功能。...

    JSTL学习

    3. **Internationalization and Formatting**:简称I18N,主要用于国际化和格式化数据,如日期、数字等的格式化显示。前缀为`fmt`,默认URI为`http://java.sun.com/jstl/fmt`。 4. **Database Access**:用于数据库...

    jstl-impl-1.2

    2. **Format**:该模块提供了国际化和格式化支持,如日期和数字的格式化,以及货币和消息的国际化处理。 3. **Function**:这个模块包含了一些预定义的函数,可以增强JSP页面的表达能力,类似于JavaScript中的函数...

    jstl.jar_standard.jar 1.1版本

    2. **Format** - 支持国际化和格式化,如日期、数字的格式化。 3. **I18N** - 国际化支持,包括资源包管理和本地化处理。 4. **SQL** - 用于执行SQL查询和数据库操作。 5. **XML** - 处理XML文档,包括解析、转换和...

    JSTL类包,jspSmartUpload类包

    2. **fmt**: 支持国际化和日期/时间格式化,帮助开发者轻松处理多语言环境下的内容显示。 3. **fn**: 函数库,包含一些实用的字符串和集合操作函数,如trim、substring、indexOf等。 4. **xml**: 处理XML数据,...

    EL JSTl详解word文档

    2. **国际化标签库 (I18N Tags)**:支持多语言环境,如日期和数字的格式化。 3. **数据库标签库 (JDBC Tags)**:用于数据库查询和操作。 4. **XML标签库 (XML Tags)**:处理XML文档,支持XPath表达式。 5. **函数...

    core jstl:mastering the jsp standard tag library

    2. **I18N和格式化标签**:这部分内容主要涉及国际化和本地化,以及数字和日期的格式化。通过fmt标签库,开发者可以轻松处理多语言环境,以及根据用户区域设置显示格式化的日期、时间和货币等信息。 3. **XML处理...

    JSTL--EL使用手册.pdf

    2. 国际化标签库:允许开发者格式化数据以符合不同区域的格式需求,例如日期、数字和货币。 3. 数据库标签库:简化了对数据库的访问操作,可以执行查询、更新、删除等操作。 4. XML标签库:提供了对XML文件的操作...

    jstl标签库

    2. **Format**: 国际化和格式化标签库,用于日期、时间、数字的格式化以及国际化支持。 3. **Function**: 函数标签库,包含一系列预定义的函数,可以作为EL表达式中的方法调用。 4. **SQL**: SQL标签库,用于执行...

    JSTL入门教程

    - **Format**: 用于国际化和格式化日期、数字等。 - **I18N**: 国际化支持。 - **Function**: 提供一系列函数,类似JavaScript中的函数。 - **XML**: 处理XML文档。 ### 二、JSTL安装与引入 1. **下载**: 从...

    我自己的jstl小型项目

    6. **JSTL的国际化和本地化支持**:使用`fmt`库处理不同地区的日期、时间、数字格式,以及资源包的加载。 **JavaScript 知识点详解** JavaScript,一种轻量级的客户端脚本语言,广泛应用于网页和网络应用开发。它...

Global site tag (gtag.js) - Google Analytics