场景
Axis2 作为响应输出到 Web 服务客户端的日期格式被格式化为“2009-08-28+01:00”。我想将其更改为仅显示没有时区信息的日期(例如:“2009-08-28”)
配置
图书馆
Axis 2 1.4.1
WSDL
<xsd:element name="StartDate" type="xsd:date" />;
问题
- 是否可以更改 Axis 2 用于写入日期信息的输出格式?
- 您是否发现 .NET 客户端在重新转换此日期格式时遇到任何问题?
约束
遗憾的是,无法将“StartDate”元素更改为 xsd:string
或 xsd:token
问题细化
因为我正在使用定义为
的xsd:date
XML 数据类型
[-]CCYY-MM-DD[Z|(+|-)hh:mm]
如果我设置
Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("UTC");
...
然后输出看起来像这样
2009-01-28Z
您可以将“UTC”替换为“GMT”或“”。
我可以去掉“Z”吗?
最佳答案
我有同样的问题,可以从日期中删除时区!
您可以使用自己创建的 ConvertUtil。
首先,您必须使用自定义的转换方法创建类:
public class myConvertUtil extends org.apache.axis2.databinding.utils.ConverterUtil
{
public static String convertToString(Date value)
{
// return customized Date format
}
}
然后您必须将此类设置为 SYSTEM_PROPERTY_ADB_CONVERTERUTIL
:
String convert_class = "com.firm.myConvertUtil";
System.setProperty(ConverterUtil.SYSTEM_PROPERTY_ADB_CONVERTERUTIL, convert_class);
关于java - Axis2 - 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1346415/