java日期字截取_日期 字符串截取 格式化 标签

1.java类文件 放到 src的包中

2.tld文件 放到web.xml同级位置,根据类所在包 进行 改写tld文件

3.jsp页面上导入的标签及使用

class="java" name="code">

日期格式化:

字符串截取:

DateTag.java

import java.io.IOException;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.tagext.TagSupport;

public class DateTag extends TagSupport

{

private static final long serialVersionUID = 1047009839984509708L;

private Object value;

private String format;

private String inFormat;

public Object getValue()

{

return value;

}

public void setValue(Object value)

{

this.value = value;

}

public String getFormat()

{

return format;

}

public void setFormat(String format)

{

this.format = format;

}

public int doStartTag() throws JspException

{

JspWriter out = pageContext.getOut();

String fmt = "yyyy-MM-dd HH:mm:ss";

if (format != null)

{

fmt = format;

}

SimpleDateFormat sdf = new SimpleDateFormat(fmt);

if (value != null)

{

if (value.getClass().getSimpleName().equals("Date"))

{

Date date = (Date) value;

try

{

out.print(sdf.format(date));

} catch (IOException e)

{

}

} else if (value.getClass().getSimpleName().equals("String"))

{

try

{

if(inFormat!=null){

Date date = DateUtil.parseDate(value.toString(),inFormat);

out.print(sdf.format(date));

}else{

Date date = DateUtil.parseDate(value.toString());

out.print(sdf.format(date));

}

} catch (Exception e)

{

}

}

} else

{

}

return SKIP_BODY;

}

public String getInFormat()

{

return inFormat;

}

public void setInFormat(String inFormat)

{

this.inFormat = inFormat;

}

}

DateUtil.java

import java.text.ParseException;

import java.util.Date;

/**

* 日期工具类

*

* @author lipinliang

*/

public abstract class DateUtil extends org.apache.commons.lang.time.DateUtils {

/**

* 默认日期格式

*/

private static final String[] parsePatterns = new String[] {

"yyyy-MM-dd HH:mm:ss",

"yyyy-MM-dd",

"yyyy/MM/dd HH:mm:ss",

"yyyy/MM/dd",

"yyyyMMddHHmmss",

"yyyyMMddHHmm",

"yyyyMMdd"

// 这里可以增加更多的日期格式,用得多的放在前面

};

/**

* 使用默认的日期格式将字符串转换为日期

*

* @param str 要转换的字符串

* @return 转换后的日期

* @throws ParseException 没有匹配的日期格式

*/

public static Date parseDate(String str) throws ParseException {

return DateUtil.parseDate(str, parsePatterns);

}

/**

* 使用给定的日期格式将字符串转换为日期

*

* @param str 要转换的字符串

* @param parsePattern 日期格式字符串

* @return 转换后的日期

* @throws ParseException 日期格式不匹配

*/

public static Date parseDate(String str, String parsePattern) throws ParseException {

return DateUtil.parseDate(str, new String[] { parsePattern });

}

}

SubTag.java

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.tagext.TagSupport;

public class SubTag extends TagSupport

{

private String value;

private int maxByte;

private String endStr;

private static final long serialVersionUID = -6878642038499468567L;

public int doStartTag() throws JspException

{

JspWriter out = pageContext.getOut();

try

{

out.print(subString(value, maxByte, endStr));

} catch (Exception e)

{

}

return SKIP_BODY;

}

/**

* 按字节长度截取字符串

* @param str:源字符串

* @param maxbyte: 字符串的byte限制

* @param endStr: 如果超出最大byte,结尾省略字符串

* @return String Object

* @author Yu

*/

public static String subString(String str, int maxByte, String endStr)

{

if (str == null || "".equals(str))

{

// 如果源字符串为空或null,返回空字符串

str = "";

} else

{

// 计算字节长度

int byteLength = 0;

// 计算字符长度

int charLength = 0;

for (; charLength < str.length(); charLength++)

{

// 计算每个字符的字节数,每个汉字+2byte,其它+1

byteLength = (int) str.charAt(charLength) > 256 ? byteLength + 2 : byteLength + 1;

// 超过最大限制字节时,按当前charLength截取字符串

if (byteLength > maxByte)

{

// 当前长度减去结尾省略字符串的长度的一半(此处将省略字符串假设为半字节字符)

charLength = charLength - endStr.length() / 2;

// 截取字符串,加上省略字符串

str = str.substring(0, charLength > 0 ? charLength : 0) + endStr;

// 跳出循环

break;

}

}

}

return str;

}

public String getValue()

{

return value;

}

public void setValue(String value)

{

this.value = value;

}

public int getMaxByte()

{

return maxByte;

}

public void setMaxByte(int maxByte)

{

this.maxByte = maxByte;

}

public String getEndStr()

{

return endStr;

}

public void setEndStr(String endStr)

{

this.endStr = endStr;

}

}

tag.rar (2.3 KB)

下载次数: 0

mytags.rar (476 Bytes)

下载次数: 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值