使用Servlet建立日期格式化器 可格式化工程内所有日期
2010-04-08 16:14
302 查看
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.regex.Pattern;
import org.apache.commons.beanutils.Converter;
public class UtilDateConverter implements Converter {
private SimpleDateFormat ymdhmsSSS = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss.SSS");
private SimpleDateFormat ymdhms = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss");
private SimpleDateFormat ymd = new SimpleDateFormat("yyyy-MM-dd");
public Object convert(Class arg1, Object arg2) {
if (null != arg2 && arg2 instanceof String) {
try {
String dateStr = (String) arg2;
if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}:\\d{1,2}.\\d{1,3}", dateStr))
return ymdhmsSSS.parse(dateStr);
else if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}:\\d{1,2}", dateStr))
return ymdhms.parse(dateStr);
else if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}",dateStr))
return ymdhms.parse(dateStr + ":00");
else if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}",dateStr))
return ymdhms.parse(dateStr + ":00:00");
else if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{1,2}", dateStr))
return ymd.parse(dateStr);
else if (Pattern.matches("\\d{4}-\\d{1,2}", dateStr))
return ymd.parse(dateStr + "-01");
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
return null;
}
/*
* 此类的用法如下: 创建一个servlet,servlet里面只要一个init() 方法
* public void init(){
* ConvertUtils.register(new UtilDateConverter(), java.util.Date.calss);
* }
* 然后在web.xml里注册此servlet类,类似代码如下
* <servlet>
* <servlet-name>UtilDateConverterRegister</servlet-name>
* <servlet-class>包名.UtilDateConverterRegister</servlet-class>
* <load-on-startup>2</load-on-startup>
* </servlet>
* 注意:此servlet不需要编写<servlet-mapping>这个信息
*/
}
import java.text.SimpleDateFormat;
import java.util.regex.Pattern;
import org.apache.commons.beanutils.Converter;
public class UtilDateConverter implements Converter {
private SimpleDateFormat ymdhmsSSS = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss.SSS");
private SimpleDateFormat ymdhms = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss");
private SimpleDateFormat ymd = new SimpleDateFormat("yyyy-MM-dd");
public Object convert(Class arg1, Object arg2) {
if (null != arg2 && arg2 instanceof String) {
try {
String dateStr = (String) arg2;
if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}:\\d{1,2}.\\d{1,3}", dateStr))
return ymdhmsSSS.parse(dateStr);
else if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}:\\d{1,2}", dateStr))
return ymdhms.parse(dateStr);
else if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}",dateStr))
return ymdhms.parse(dateStr + ":00");
else if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}",dateStr))
return ymdhms.parse(dateStr + ":00:00");
else if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{1,2}", dateStr))
return ymd.parse(dateStr);
else if (Pattern.matches("\\d{4}-\\d{1,2}", dateStr))
return ymd.parse(dateStr + "-01");
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
return null;
}
/*
* 此类的用法如下: 创建一个servlet,servlet里面只要一个init() 方法
* public void init(){
* ConvertUtils.register(new UtilDateConverter(), java.util.Date.calss);
* }
* 然后在web.xml里注册此servlet类,类似代码如下
* <servlet>
* <servlet-name>UtilDateConverterRegister</servlet-name>
* <servlet-class>包名.UtilDateConverterRegister</servlet-class>
* <load-on-startup>2</load-on-startup>
* </servlet>
* 注意:此servlet不需要编写<servlet-mapping>这个信息
*/
}
相关文章推荐
- 使用java.text包格式化数字和日期
- 使用keil建立标准STM32工程模版(图文详细版!)
- MySql使用DATE_FORMAT对日期进行格式化
- Java使用String类格式化当前日期
- eclipse建立web工程时,action引用servlet的出错的解决办法
- 使用jstl格式化日期
- 使用SimpleDateFormat格式化日期
- SqlServer中使用CONVERT函数实现日期格式化
- visual studio 12/13基础c++工程建立使用
- 使用Eclipse建立一个JAVA工程和WEB工程
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- 使用fmt标签格式化输出日期和数字
- java 使用simpleDateFormat格式化日期 时间
- Extjs6自学笔记之使用Sencha Cmd6建立工程项目(二)
- 使用maven建立WEB工程
- Java使用String类格式化当前日期
- 使用IDE与maven建立工程-1
- 工程组件化--远程私有库及索引库的建立与使用(初级)
- angular input输入框中使用filter格式化日期
- fmt标签的格式化日期使用