欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

XStream的Date转换 @XStreamConverter DateConverter

程序员文章站 2022-03-26 13:34:06
...
1.如果Date类型是元素,可参考http://huyumin.iteye.com/blog/2072675实现;

2.如果Date类型是属性,则要构造实现SingleValueConverter的转换类,方法如下:

public class XStreamDateConverter  implements SingleValueConverter {

	@Override
	public boolean canConvert(Class arg0) {
		return Date.class == arg0;
	}

	@Override
	public Object fromString(String arg0) {
		try {
			return DateUtil.parse(arg0, "yyyy-MM-dd");
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public String toString(Object arg0) {
		return DateUtil.getDateStrByPattern((Date) arg0, "yyyy-MM-dd");
	}

 }


在需要转换的Date属性上添加注解如下:
@XStreamConverter(value=XStreamDateConverter.class)
@XStreamAsAttribute
private Date startTime;
	
@XStreamConverter(value=XStreamDateConverter.class)
@XStreamAsAttribute
private Date endTime;


最后注册这个Converter就可以了
String xml = "";
XStream f = new XStream(new DomDriver()); 
f.registerConverter(new XStreamDateConverter());  
f.autodetectAnnotations(true);
f.fromXML(xml);
相关标签: java xml