先说说自己的需求:
数据库多条数据,时间字段存的是10位php格式的时间戳,我是需要用java在jsp页面做数据列表展示,就牵扯到时间戳与日期格式时间转换问题。
本来可以new Date(时间戳)就可以得到一个Date对象,但是,php时间戳是10位,java的是13位,就需要转换一下,然后得到Date对象,在格式化,综合考虑,写了一个自定义
标签,只需要传入10位的时间戳,和自己需要转换的时间格式,就可以了。
php时间戳转换java时间戳:直接在最后加3个0就可以了,java时间戳转换php时间戳:去掉最后三位
标签java类:
package com.ilvy.core.tag;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.jsp.tagext.TagSupport;
public class DateTag extends TagSupport {
/**
*
*/
private static final long serialVersionUID = -5743295339374288539L;
private long sjc;// 时间戳(输入)
private String dTime;// 日期时间(输出)
private String patten;// 日期格式
/**
* 时间戳转换成日期时间
*
* @return
*/
public int doStartTag() {
try {
String timeStr = sjc + "000";
long timeL = Long.parseLong(timeStr);
Date timeDate = new Date(timeL);
SimpleDateFormat sdf = new SimpleDateFormat(patten);
dTime = sdf.format(timeDate);
pageContext.getOut().println(dTime);
} catch (Exception e) {
e.printStackTrace();
}
return EVAL_PAGE;
}
public long getSjc() {
return sjc;
}
public void setSjc(long sjc) {
this.sjc = sjc;
}
public String getdTime() {
return dTime;
}
public void setdTime(String dTime) {
this.dTime = dTime;
}
public String getPatten() {
return patten;
}
public void setPatten(String patten) {
this.patten = patten;
}
}
标签tld文件:
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/jsee/web-jsptagLibrary_2_0.xsd" version="2.0"> <tlib-version>1.2</tlib-version> <uri>DateTags</uri> <tag> <name>dateTag</name> <description>时间戳转换时间</description> <tag-class>com.ilvy.core.tag.DateTag</tag-class> <body-content>JSP</body-content> <attribute> <name>sjc</name> <type>long</type> <!-- 属性类型 --> <required>true</required><!-- 说明movieList属性是必需的 --> <rtexprvalue>true</rtexprvalue><!-- 说明movieList属性可以是一个运行时表达式(不用非得是一个常量String) --> </attribute> <attribute> <name>patten</name><!-- 转换格式 --> <type>string</type> <!-- 属性类型 --> </attribute> </tag> </taglib>
jsp页面使用方法:
<%@taglib uri="DateTags" prefix="d"%> <d:dateTag sjc="${jstl}" patten="yyyy年MM月dd日 HH:mm"></d:dateTag>