Axis2 – 日期格式
脚本
由Axis2作为对Web服务客户端的响应输出的日期格式格式为“2009-08-28 + 01:00”。 我想将此更改为仅显示没有时区信息的日期(例如:“2009-08-28”)
组态
图书馆
轴2 1.4.1
WSDL
;
题
- 是否可以更改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”吗?
使用Calendar对象作为xsd:date字段的源值会导致此问题。 当您获得Calendar的实例时,它始终与时区一起使用(如果未明确指定,则使用默认时区)。 要删除时区,请使用clear()方法并恢复除时区之外的所有字段。 然后XML映射库(我使用XmlBeans测试,但我认为对于Axis支持的其他绑定库也是如此)生成没有时区后缀的XML。
Calendar myDate = Calendar.getInstance(); // returns GregorianCalendar Calendar now = (Calendar)myDate.clone(); // save current timestamp myDate.clear(); // this clears the fields, including Calendar.ZONE_OFFSET myDate.set( //set all fields back from the saved copy now.get(Calendar.YEAR), now.get(Calendar.MONTH), now.get(Calendar.DAY_OF_MONTH), now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), now.get(Calendar.SECOND) );
我遇到了同样的问题,可以从日期中删除时区!
您可以使用自己创建的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);
你不能。
它的价值空间被描述为ISO 8601第5.4章中日期和时间的组合。它的词汇空间是扩展格式:
[ – ] CCYY-MM-DDTHH:MM:SS [Z |(+ | – )HH:MM]
时区可以指定为Z(UTC)或(+ | – )hh:mm。 未指定的时区被视为未确定。
http://books.xmlschemata.org/relaxng/ch19-77049.html
编辑:
有关参考,请参阅XML架构第2部分:数据类型第二版3.2.7 dateTime
有一个Calendar#clear方法可以满足您的需求。 要摆脱时区偏移,只需执行以下操作:
cal.clear(Calendar.ZONE_OFFSET);
请注意,没有时区偏移的时间是不明确的。 它让消费者有时间猜测UTC偏移。
- org.apache.axis2.AxisFault:在Webservice中传递对象数组时,Unknow类型无法序列化
- Axis2没有返回自己的对象
- 使用带有自己的安全框架的axis2 ramaprt模块
- WstxUnexpectedCharException:DOCTYPE声明中出现意外的字符’“’(代码34);预期公共标识符和系统标识符之间的空格
- Axis2客户端的最小类路径是什么?
- 使用AXIS2创建的ADB-stub在客户端获取原始XML SOAP响应
- 访问NTLM安全WS通过WSO2ESB
- 使用`java2wsdl`生成的Web服务是否包含来自多个Java类的API?
- Axis2生成的存根是否是线程安全的?