import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
public class DateConverter extends StrutsTypeConverter {
/*
* http://blog.163.com/ztxz_179/blog/static/10520599520122575940933/
* 在classpath根下创建 xwork-conversion.properties文件
* 增加配置项:java.util.Date=com.sohu.video.ad.struts.converter.DateConverter
* */
private static final String FORMATDATE = "yyyy-MM-dd";
private static final String FORMATTIME = "yyyy-MM-dd HH:mm:ss";
@SuppressWarnings("unchecked")
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
if (values == null || values.length == 0) {
return null;
}
// 有时分秒的要先转换
SimpleDateFormat sdf = new SimpleDateFormat(FORMATTIME);
Date date = null;
String dateString = values[0];
if (dateString != null) {
try {
date = sdf.parse(dateString);
} catch (ParseException e) {
date = null;
}
if (date == null) {
sdf = new SimpleDateFormat(FORMATDATE);
try {
date = sdf.parse(dateString);
} catch (ParseException e) {
date = null;
}
}
}
return date;
}
@SuppressWarnings("unchecked")
@Override
public String convertToString(Map context, Object o) {
if (o instanceof Date) {
SimpleDateFormat sdf = new SimpleDateFormat(FORMATTIME);
return sdf.format((Date) o);
}
return "";
}
}
本文详细介绍了如何在Java中自定义实现日期转换,包括如何处理包含时分秒的日期字符串,并通过配置文件来实现类型转换。

被折叠的 条评论
为什么被折叠?



