`
violasogni
  • 浏览: 22312 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类

页面中格式化和解析日期

阅读更多
[转]JSP开发时, 在页面中格式化和解析日期始终是个头疼的事情. 可以用JSTL和JavaScript搞定.
以前老师的。
转来。
-----------------

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格式化日期标签收藏
<%@ 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 格式化

/**//*
  将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解析日期.zip

    JSTL提供了`fmt`标签库,它包含了处理日期和时间的标签,如`&lt;fmt:formatDate&gt;`,可以帮助我们格式化和解析日期。`fmt`标签库需要引入`fmt.jar`和`jsp-api.jar`到项目类路径中,并在JSP页面上导入相应的标签库: ```...

    JSTL日期、时间格式化标签.pdf

    在JSP页面中,JSTL提供了`fmt`标签库,用于处理日期和时间的显示和解析,使得我们可以更加方便地根据不同的地区设置来格式化日期和时间。 在提供的文件内容中,可以看到`fmt:parseDate`和`fmt:formatDate`这两个...

    jstl标签实现货币的格式化

    格式化标签库(FMT)主要用于处理文本的国际化和格式化问题,例如日期、时间、数字等的格式化显示。 #### `&lt;fmt:formatNumber&gt;`标签详解 `&lt;fmt:formatNumber&gt;`标签用于格式化数字,可以将数字转换为货币、百分比或...

    springboot编程中在google浏览器格式化显示json格式数据

    本文将详细介绍如何在Google Chrome中安装和使用JSON格式化显示插件,以便在Spring Boot项目中更好地处理JSON数据。 首先,我们需要知道在哪里找到Chrome的插件商店。在浏览器中输入`chrome://extensions/`,进入...

    ajax请求时json时间格式的格式化显示

    3. `ajaxDataFormat.js`可能包含了`formatTime`函数,该函数可能使用JavaScript内置的`Date`对象来解析和格式化时间戳: ```javascript function formatTime(timestamp) { var date = new Date(timestamp * 1000); ...

    Asp.net中时间格式化的6种方法详细总结

    在Asp.net开发中,对时间格式化的处理是常见的需求,尤其在展示或者处理日期时间数据时。本文将详细介绍六种在Asp.net中格式化时间的方法,帮助开发者更好地理解和运用。 1. **数据控件绑定时格式化日期** 当使用`...

    学习JSTL日期时间格式化标签.pdf

    JSTL(JSP Standard Tag Library)是Java服务器页面中常用的一个标签库,它提供了许多便利的标签来简化页面逻辑,其中包括对日期和时间的格式化处理。在本教程中,我们将深入探讨JSTL中的`fmt`标签库,特别是关于...

    微软DOC二进制文件格式解析

    4. **文字格式化**:DOC文件内部使用一系列的控制字符和代码来表示文字的样式,如字体、大小、颜色、加粗、斜体等。这些信息被编码在文档的各个位置,与文字数据紧密关联。 5. **段落和分页**:段落和分页信息以...

    基于jquery的web页面日期格式化插件

    在Web开发中,日期和时间的格式化是一个常见的需求,特别是在展示给用户的时候。这个基于jQuery的日期格式化插件提供了一个简洁的方式来处理这一问题。接下来,我们将详细探讨该插件的工作原理、如何使用以及其背后...

    Freemarker_内置函数_数字、字符串、日期格式化.txt

    根据提供的文件信息,我们可以深入探讨Freemarker中的内置...以上是Freemarker中关于数字、字符串和日期格式化的内置函数的详细解析。通过这些内置函数,可以极大地简化模板中的数据处理逻辑,使得模板更加简洁、高效。

    datatables render与日期转换(moment.js)

    `moment.js` 库提供丰富的日期和时间处理功能,支持多种输入格式,并可以方便地进行日期运算和格式化。例如,它可以解析ISO字符串、Unix时间戳甚至不规则的日期格式。`format` 方法则允许我们根据需求定制日期的显示...

    支持手机页面、web页面的时间日期控件

    JavaScript库如Moment.js提供了强大的日期处理功能,可以用于格式化、解析、比较日期等。然而,对于日期选择器,开发者可能会选择更专门的库,例如Pickadate.js、Flatpickr或Day.js,它们提供美观的用户界面和丰富的...

    在页面上显示日期,星期和时间(HTML经典用例)

    ### 在页面上显示日期、星期和时间(HTML经典用例) #### 核心知识点解析 本文将详细介绍如何在网页上动态地显示当前日期、星期以及时间,并深入分析所涉及的关键技术点,包括HTML结构设计、JavaScript编程实现等...

    微信小程序服务器日期格式化问题

    在讨论微信小程序服务器日期格式化问题之前,首先需要理解几个关键点:服务器时间获取、日期格式化的目的和重要性、以及如何在微信小程序中实现日期格式化。 服务器通常会使用标准的UTC时间(协调世界时)来存储和...

    控制日期格式的js组件

    7. **API接口**:组件可能提供了一系列API,如`formatDate`、`parseDate`等,用于格式化或解析日期字符串,方便与其他代码集成。 8. **错误处理**:当遇到无效的日期输入时,组件会提供适当的错误提示,帮助用户...

    前台页面日期控件

    - **日期处理**:如何正确地解析和格式化日期,以及处理跨时区、闰年等问题。 - **可定制性**:控件是否提供足够的配置项以满足不同设计和功能需求。 - **性能优化**:在大量数据或者复杂操作下,控件的性能表现如何...

    解析 Epub格式文件的dameon

    3. **构建内容结构**:分析OPF中的manifest和spine元素,理解书籍的章节和页面顺序。 4. **生成导航**:如果存在NCX文件,daemon会生成导航菜单;对于新版本的Epub,可能需要解析HTML5的TOC。 5. **内容提取**:提取...

    职位发布日期解析器.zip

    然后,安装职位发布日期解析器插件,当用户访问包含职位信息的网页时,这个解析器会自动解析日期,可能以突出显示、高亮或者在侧边栏显示的方式提醒用户哪些职位是最新的,从而帮助求职者节省时间,迅速定位适合的...

Global site tag (gtag.js) - Google Analytics