2014-10-03 67 views
4

我使用的Java XML註釋是這樣的:XmlSchemaType「日期」 - 沒有時區?

@XmlRootElement 
@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "OrganisationUnit", propOrder = { 
     "companyId", 
     "validFrom", 
     "validTo", 
}) 
public class OrganisationUnit { 

    @XmlElement(name = "company_id", required = true) 
    protected String companyId; 

    @XmlElement(name = "valid_from") 
    @XmlSchemaType(name = "date") 
    protected XMLGregorianCalendar validFrom; 

    @XmlElement(name = "valid_to") 
    @XmlSchemaType(name = "date") 
    protected XMLGregorianCalendar validTo; 

    ... 
} 

然而,當我提出通過REST服務提供的信息,該date元素顯示與時區:

<organisationUnits> 
    <organisationUnit> 
     <company_id>ABC</company_id> 
     <valid_from>1970-01-01+01:00</valid_from> 
     <valid_to>2099-12-31+01:00</valid_to> 
    </organisationUnit> 
</organisationUnits> 

我不完全瞭解XmlSchemaType date是否需要顯示時區 - 但理想情況下,我想顯示沒有時區的日期。

  <valid_from>1970-01-01</valid_from> 
     <valid_to>2099-12-31</valid_to> 

我該怎麼做?

回答

2

好,閱讀文檔有時會告訴你美好的事物,而這裏也正是如何做到這一點,隨着時間的推移區DatatypeConstants.FIELD_UNDEFINED

private XMLGregorianCalendar dateWithoutTimezone(Date date) throws DatatypeConfigurationException { 
    calendar.setTime(date); 
    XMLGregorianCalendar xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar); 
    xmlGregorianCalendar.setTimezone(DatatypeConstants.FIELD_UNDEFINED); 
    return xmlGregorianCalendar; 
} 

希望這有助於。