使用Jaxb2进行xml与bean的转义时Date的format设置

参考http://jackyrong.iteye.com/blog/1826699

 JAXB转换JAVA OBJECT到XML的时候,对java.util.Date的转换有些要注意的地方

输出的格式为:2014-05-18T12:00:09+08:00

希望能够自定义date的format,具体解决方法如下:

要继承XmlAdapter,重写其中的方法去对日期进行格式化

编写一个class如下:

 1 public class JaxbDateSerializer extends XmlAdapter<String, Date>{

 2     @Override

 3     public Date unmarshal(String v) throws UFEException, ParseException {

 4         SimpleDateFormat  dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

 5 // 避免线程不安全,这里使用局部变量,而非全局变量

 6         return dateformat.parse(v);

 7     }

 8 

 9     @Override

10     public String marshal(Date v) throws UFEException {

11         SimpleDateFormat  dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

12         return dateformat.format(v);

13     } 

14 }

 

而后在配置文件中,对jaxbMarshaller进行如下配置:(注意adapters的list里,有上述写的类)

<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">

        <property name="ClassesToBeBound">

            <list>

                <value>cn.ac.iscas.pebble.ufe.bean.SearchRecord</value>

                <value>cn.ac.iscas.pebble.ufe.bean.Result</value>

            </list>

        </property>

        <property name="adapters">

            <list>

                <bean class="cn.ac.iscas.pebble.ufe.ds.JaxbDateSerializer" />

            </list>

        </property>

    </bean>

而后对于要转换成xml的bean里的date属性添加@XmlJavaTypeAdapter(JaxbDateSerializer.class)属性

比如上述的classestobebound里有两个bean,一个searchRecord,如下:

@XmlAccessorType(XmlAccessType.FIELD)

@XmlRootElement(name="parameters")

public class SearchRecord {

    @XmlElement

    private Integer rid;

    @XmlElement

    private Integer fid;

    @XmlJavaTypeAdapter(JaxbDateSerializer.class)

    @XmlElement

    private Date time;

    @XmlElement

    private Integer sid;

    @XmlElement

    private Integer calculatestate;

    @XmlJavaTypeAdapter(JaxbDateSerializer.class)

    @XmlElement

    private Date lasttime;

    @XmlElement

    private Integer session;

    @XmlElement
……………

 

 

你可能感兴趣的:(format)