`
darrenzhu
  • 浏览: 802443 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何指定JAXB在marshal生成xml时日期的格式

    博客分类:
  • Java
阅读更多
参考文章:http://stackoverflow.com/questions/13568543/how-do-you-specify-the-date-format-used-when-jaxb-marshals-xsddatetime


方法1:instance级别指定,即每次使用时指定
public static XMLGregorianCalendar getXmlDate(Date date) throws DatatypeConfigurationException {
    return DatatypeFactory.newInstance().newXMLGregorianCalendar(new SimpleDateFormat("yyyy-MM-dd").format(date));
}

public static XMLGregorianCalendar getXmlDateTime(Date date) throws DatatypeConfigurationException {
    return DatatypeFactory.newInstance().newXMLGregorianCalendar(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(date));
}


方法2:class级别,即使用Adapter,为一个类的某个属性都使用设置好的日期格式
You can use an XmlAdapter to customize how a date type is written to XML.

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class DateAdapter extends XmlAdapter<String, Date> {

    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    @Override
    public String marshal(Date v) throws Exception {
        return dateFormat.format(v);
    }

    @Override
    public Date unmarshal(String v) throws Exception {
        return dateFormat.parse(v);
    }

}


Then you use the @XmlJavaTypeAdapter annotation to specify that the XmlAdapter should be used for a specific field/property.

@XmlElement(name = "timestamp", required = true) 
@XmlJavaTypeAdapter(DateAdapter.class)
protected Date timestamp; 
分享到:
评论

相关推荐

    使用jaxb根据xsd生成xml文档

    **使用JAXB根据XSD生成XML文档** 在Java开发中,XML文档的生成与解析是一项常见的任务,特别是在处理数据交换和存储时。JAXB(Java Architecture for XML Binding)是Java平台标准的一部分,它提供了一种将Java对象...

    jaxb生成XML例子

    在给定的例子中,我们将深入理解如何使用JAXB注解来生成XML。 1. **@XmlType**: 这个注解用于定义类的属性在XML输出中的顺序。在`WriterXml`类中,propOrder 属性指定了"id", "name", "age", "book"这四个属性的...

    JAXB 生成XML文件

    例如,`marshaller.marshal(obj, outputStream)`会将Java对象`obj`写入到`outputStream`,生成XML格式的数据。 4. **反序列化**:反序列化是将XML数据转换回Java对象的过程。这通常通过调用`Unmarshaller`接口的...

    用JAXB生成一个XML

    ### 使用JAXB生成XML文档详解 #### 一、前言 在现代软件开发过程中,XML(可扩展标记语言)作为一种重要的数据交换格式,被广泛应用于各种应用场景中。特别是在J2EE(Java Platform, Enterprise Edition)领域,...

    jaxb解析生成xml

    以下是一个简单的JAXB解析生成XML的例子: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; public class JaxbExample { public static ...

    实体类生成XML格式字符串

    本篇文章将详细讲解如何根据实体类生成XML格式的字符串,并提供一个自定义实体类转化为XML的示例。 首先,我们需要了解XML的基本结构。XML(eXtensible Markup Language)是一种标记语言,用于描述数据并定义其结构...

    jaxb (XML操作)

    这个过程极大地简化了XML在Java应用中的操作。 **XML操作的基本概念:** XML(eXtensible Markup Language)是一种标记语言,常用于数据交换和配置文件。XML文档结构清晰,具有自解释性,使得数据在不同系统间交换...

    用jaxb自动生成xsd对像

    当你需要在XML与Java类之间进行数据交换时,JAXB提供了一种自动化的机制,可以将XML Schema (XSD) 文件转换为Java类,反之亦然。这个过程被称为“绑定”或“反绑定”。 标题“用jaxb自动生成xsd对像”指的是利用...

    利用JAXB进行xml和javabean之间转换

    在Java世界中,XML(可扩展标记语言)作为一种数据交换格式,被广泛用于存储和传输数据。而JAXB(Java Architecture for XML Binding)是Java提供的一种标准API,它允许我们轻松地在Java对象(javabean)和XML文档...

    JAXB工具类 xml转为java对象 java对象转为xml

    1. 自动化:JAXB自动生成Java类和XML之间的映射,大大减少了手动编码的工作量。 2. 高效:JAXB提供了高性能的序列化和反序列化机制。 3. 标准化:作为Java EE的一部分,JAXB遵循了Java社区的开放标准,确保了广泛的...

    webservice之使用jaxb把xml转换Object或把对象转换成xml文件

    3. WebService:在开发基于SOAP的WebService时,JAXB常用于XML与Java对象的转换,使得数据交换更加便捷。 五、JAXB与其它XML处理技术对比 JAXB与其他XML处理技术(如DOM、SAX、StAX)相比,更注重于对象模型与XML...

    JAXB与xml相互转换实例

    当我们有一个Java对象,并希望将其转换成XML格式时,JAXB会使用已有的Java类和XML Schema信息来生成符合Schema规范的XML文档。这个过程可以通过调用`JAXBContext`的`createMarshaller()`方法创建一个marshaller对象...

    通过JAXB实现完成java对象和xml的互相转换

    Java Architecture for XML Binding (JAXB) 是一个Java标准,它提供了在Java对象和XML文档之间进行自动转换的能力。这项技术极大地简化了XML数据处理,使得开发者可以方便地将Java对象序列化为XML,或者从XML数据中...

    jaxb解析xml

    通过配置,可以在生成Java类时引入XML Schema,确保Java对象和XML文档的一致性。 在"jaxb-ri-20120516"这个文件名中,"ri"可能代表"Reference Implementation",这意味着它可能是JAXB的一个官方参考实现版本。使用...

    利用jaxb实现xml和bean互转

    **Java Architecture for XML Binding (JAXB)** 是Java平台上的一个标准技术,用于在XML文档和Java对象之间进行数据绑定。它允许开发者将XML文档转换为Java对象,反之亦然,从而简化了XML处理。JAXB是Java SE和Java ...

    使用JAXB完成JAVAbean与xml互转

    Java Architecture for XML Binding (JAXB) 是Java平台上的一个标准技术,它允许在Java对象(如JavaBeans)和XML文档之间进行互相转换。这个过程被称为对象绑定,它简化了XML数据的处理,使得开发人员无需手动编写...

    JaxbContext生成xml文件或java类对象转化注解

    在 JAXB 中,将一个 Java 对象转换为 XML 的过程称之为 Marshal,将 XML 转换为 Java 对象的过程称之为 UnMarshal。 通过在 Java 类中标注注解的方式,可以将一个 Java 对象绑定到一段 XML。这些注解定义了如何将这...

    JAXB xml与对象转换

    3. **灵活性**:支持动态绑定,可以在运行时根据XML Schema生成Java类。 ### JAXB的局限性 1. **复杂XML处理**:对于非常复杂的XML结构,JAXB可能需要更多的注解来配置,使得代码变得冗长。 2. **资源消耗**:虽然...

    xml转javaBean,javaBean转xml,xml标签大小写问题,以及对xml特殊符号的处理

    在生成XML时,需要确保正确转义这些字符;在解析XML时,解析器会自动解码这些实体。 总结,XML与JavaBean之间的转换是Java开发中的常见操作,理解XML的大小写规则、特殊符号处理和CDATA的使用对于编写健壮的XML处理...

    java生成xsd,xml示例

    在Java中生成XML文档,我们可以使用DOM(Document Object Model)、SAX(Simple API for XML)或者JAXB(Java Architecture for XML Binding)。DOM解析器会将整个XML文档加载到内存中,适合小规模数据处理;SAX是...

Global site tag (gtag.js) - Google Analytics