Scenario
The date format which is output as a response to the Web Service client by Axis2 is formatted as “2009-08-28+01:00”. I would like to change this to show only the date without the timezone information (e.g.:”2009-08-28″)
Configuration
Libraries
Axis 2 1.4.1
WSDL
<xsd:element name="StartDate" type="xsd:date" />;
Question
- Is it possible to change the output format, which is used by Axis 2 to write date information?
- Can you see any issues for .NET clients reagrding the conversion of this date format?
Constraints
Unfortunately it is not possible to change the “StartDate” element to a xsd:string or xsd:token
Question refinement
As I am using the xsd:date XML Data Type which is defined as
[-]CCYY-MM-DD[Z|(+|-)hh:mm]
Thus if I set
Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("UTC");
...
then the output looks like this
2009-01-28Z
You can replace “UTC” by “GMT” or “”.
Can I get rid of the “Z”?
The problem is caused by using Calendar object as a source value for xsd:date field. When you get instance of Calendar it always goes with timezone (default timezone is used if not specified explicitly). To remove timezone use clear() method and restore all fields excluding timezone. Then XML mapping library (I tested with XmlBeans, but I think it’s also true for other binding libraries supported by Axis) generates XML without timezone suffix.