2013-07-10 73 views
0

我正在使用Apache Axis構建Web服務的服務器端。該服務執行一些邏輯並將日期返回給調用者。要求是返回的日期應該是YYYY-MM-DD的格式。 (說2013-07-01)。值中不應該有任何時間分量。從xsd:date剝離出時間組件

我通過wsdl2java工具運行了WSDL。這生成了Skeleton和輸入/輸出參數java類。我使用亞行進行綁定。我看到,對於在XSD中定義爲xsd:date的類型,相應生成的java數據類型是java.util.Date。

在服務邏輯中,我用代碼中的java.util.Date填充了日期字段。我發現Web服務響應也包含時間組件。喜歡的東西:

2013-07-10-04:00 2014-06-30-04:00

我不想:00中的值。我如何擺脫它?

回答

0

Check out this link about how to use an xml adapter

要如何歸還日期,您可以使用適配器在JAXB定義來定義。您還需要在xsd:date定義中指向此適配器。 使用@XmlJavaTypeAdapter annotation

import java.util.Date; 
import java.text.SimpleDateFormat; 
import javax.xml.bind.annotation.adapters.XmlAdapter; 

public class DateAdapter extends XmlAdapter<String, Date> { 

    // the desired format 
    private String pattern = "MM/dd/yyyy"; 

    public String marshal(Date date) throws Exception { 
     return new SimpleDateFormat(pattern).format(date); 
    } 

    public Date unmarshal(String dateString) throws Exception { 
     return new SimpleDateFormat(pattern).parse(dateString); 
    }