jsp转long类型为date,并且格式化

Posted 小破孩楼主

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp转long类型为date,并且格式化相关的知识,希望对你有一定的参考价值。

方式一、使用java脚本

<% 
       Long time = (Long)request.getAttribute("longtime");
       Date date=new Date(time); 
       SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
       String timeStr = sdf.format(date);
    out.println(timeStr); 
%> 

这里使用到了Date和SimpleDateFormat这两个类,需要在jsp前面使用import引用这两个类。<%@ page language="java" import="java.util.*,java.text.*" pageEncoding="utf-8"%>(上面的代码,在jsp中耦合度高,维护起来也相对复杂。

方式二、使用自定义标签

1、新建一个java类,继承TagSupport,在doStartTag处理逻辑
package com.hoolai.pirates.football.util;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

public class DateTag extends TagSupport {
    private static final long serialVersionUID = -2312310581852395045L;
    private String value;

    @Override
    public int doStartTag() throws JspException {
        String vv = "" + value;
        long time = Long.valueOf(vv);
        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(time);
        SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String s = dateformat.format(c.getTime());
        try {
            pageContext.getOut().write(s);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return super.doStartTag();
    }

    public void setValue(String value) {
        this.value = value;
    }
}


2、有WEB-INF下建立一个datetag.tld

<?xml version="1.0" encoding="UTF-8"?>  
<taglib>  
    <tlib-version>1.0</tlib-version>  
    <jsp-version>1.2</jsp-version>  
  
    <tag>  
        <name>date</name>  
        <tag-class>com.hoolai.pirates.football.util.DateTag</tag-class>          
        <body-content>JSP</body-content>  
        <attribute>  
            <name>value</name>  
            <required>true</required>  
            <rtexprvalue>true</rtexprvalue>  
        </attribute>  
    </tag>  
</taglib>


3、在jsp中引入

<%@ taglib prefix="lzq" uri="/WEB-INF/lib/tld/datetag.tld"%>  

4、页面中用到的地方

<td align="left"><input name="endTime" type="text" value="<lzq:date value="${res.endTime}"/>" class="input_bg" /></td>
 

方式三、使用<jsp:userBean>

<jsp:useBean id="timestamp" class="java.util.Date"/>
<jsp:setProperty name="timestamp" property="time" value="${longtime}"/>
<fmt:formatDate value="${timestamp}" pattern="MM/dd/yyyy HH:mm:ss"/>

<jsp:useBean>标签用于在指定的域范围内查找指定名称的JavaBean对象:
如果存在则直接返回该JavaBean对象的引用。如果不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中。
常用语法:
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
id属性用于指定JavaBean实例对象的引用名称和其存储在域范围中的名称。
class属性用于指定JavaBean的完整类名(即必须带有包名)。
scope属性用于指定JavaBean实例对象所存储的域范围,其取值只能是page、request、session和application等四个值中的一个,其默认值是page。

 

以上是关于jsp转long类型为date,并且格式化的主要内容,如果未能解决你的问题,请参考以下文章

怎么将long类型转换成date

long类型的转换为正常时间格式遇到的问题

如何用Java把date类型转换成long数字?

jsp自定义标签(时间格式化包括Long转时间)

oracle 中时间类型 date 与 long 互转

Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)