XML 使用 XStream 进行转换:无法解析格式 2016-02-04T18:01 的日期
XML conversion by using XStream : not able parse date of format 2016-02-04T18:01
我正在使用 XStream 转换 XML。
我的 XML 如下所示。
<reportUnit>
<creationDate>2016-02-04T18:01</creationDate>
<description>Days Late Report</description>
<label>Days Late Report</label>
<permissionMask>2</permissionMask>
<updateDate>2014-10-31T19:45</updateDate>
</reportUnit>
我的 Java 转换 XML 的代码就像
XStream xStream = new XStream();
xStream.alias("reportUnit", ReportUnit.class);
xStream.registerConverter(
new com.thoughtworks.xstream.converters.basic.DateConverter("yyyy-MM-dd HH:mm", new String[] {"dd/MM/yyyy HH:mm"},new GregorianCalendar().getTimeZone()){
public boolean canConvert(Class type) {
return type.equals(Date.class) || type.equals(Timestamp.class);
}
public String toString(Object obj) {
return new SimpleDateFormat("yyyy-MM-dd HH:mm").format((Date) obj);
}
});
xStream.fromXML(objectXml.replace("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>", BLANK));
以上代码适用于日期格式
<creationDate>2016-02-04 18:01</creationDate>
但不适用于
<creationDate>2016-02-04T18:01</creationDate>
我遇到异常:无法解析日期 2016-02-04T18:01
我尝试使用 thoughtworks 中的 ISO8601DateConverter,可在下面的包中找到
"com.thoughtworks.xstream.converters.extended.ISO8601DateConverter"
但这并没有解决我的问题...
有没有人遇到同样的问题并且知道如何解决。
格式不正确。当我使用 "yyyy-MM-dd'T'HH:mm" 作为格式时,它对我有用。
XStream xStream = new XStream();
xStream.alias("reportUnit", ReportUnit.class);
xStream.registerConverter(
new com.thoughtworks.xstream.converters.basic.DateConverter("yyyy-MM-dd'T'HH:mm", new String[] {"dd/MM/yyyy HH:mm"},new GregorianCalendar().getTimeZone()){
public boolean canConvert(Class type) {
return type.equals(Date.class) || type.equals(Timestamp.class);
}
public String toString(Object obj) {
return new SimpleDateFormat("yyyy-MM-dd HH:mm").format((Date) obj);
}
});
xStream.fromXML(objectXml.replace("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>", BLANK));
我正在使用 XStream 转换 XML。
我的 XML 如下所示。
<reportUnit>
<creationDate>2016-02-04T18:01</creationDate>
<description>Days Late Report</description>
<label>Days Late Report</label>
<permissionMask>2</permissionMask>
<updateDate>2014-10-31T19:45</updateDate>
</reportUnit>
我的 Java 转换 XML 的代码就像
XStream xStream = new XStream();
xStream.alias("reportUnit", ReportUnit.class);
xStream.registerConverter(
new com.thoughtworks.xstream.converters.basic.DateConverter("yyyy-MM-dd HH:mm", new String[] {"dd/MM/yyyy HH:mm"},new GregorianCalendar().getTimeZone()){
public boolean canConvert(Class type) {
return type.equals(Date.class) || type.equals(Timestamp.class);
}
public String toString(Object obj) {
return new SimpleDateFormat("yyyy-MM-dd HH:mm").format((Date) obj);
}
});
xStream.fromXML(objectXml.replace("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>", BLANK));
以上代码适用于日期格式
<creationDate>2016-02-04 18:01</creationDate>
但不适用于
<creationDate>2016-02-04T18:01</creationDate>
我遇到异常:无法解析日期 2016-02-04T18:01
我尝试使用 thoughtworks 中的 ISO8601DateConverter,可在下面的包中找到
"com.thoughtworks.xstream.converters.extended.ISO8601DateConverter"
但这并没有解决我的问题...
有没有人遇到同样的问题并且知道如何解决。
格式不正确。当我使用 "yyyy-MM-dd'T'HH:mm" 作为格式时,它对我有用。
XStream xStream = new XStream();
xStream.alias("reportUnit", ReportUnit.class);
xStream.registerConverter(
new com.thoughtworks.xstream.converters.basic.DateConverter("yyyy-MM-dd'T'HH:mm", new String[] {"dd/MM/yyyy HH:mm"},new GregorianCalendar().getTimeZone()){
public boolean canConvert(Class type) {
return type.equals(Date.class) || type.equals(Timestamp.class);
}
public String toString(Object obj) {
return new SimpleDateFormat("yyyy-MM-dd HH:mm").format((Date) obj);
}
});
xStream.fromXML(objectXml.replace("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>", BLANK));