Axis2 Date带有时区后缀的解决方法
程序员文章站
2022-04-30 11:29:21
...
利用Axis2生成Stub后,使用中发现Date类型在转换为xml String的时候都带有时区(Timezone)信息。而自己的系统并不认这种日期格式。例如:
Axis2生成的日期字符串形如 yyyy-MM-dd+hh:mm
自己的系统只认yyyy-MM-dd
所以,如何去掉后面的TimeZone信息呢?
1. 创建转换类继承org.apache.axis2.databinding.utils.ConverterUtil
2. 重载publicstaticStringconvertToString(Datevalue)方法
原方法
public static String convertToString(Date value) { // lexical form of the date is '-'? yyyy '-' mm '-' dd zzzzzz? Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.setTime(value); if (!calendar.isSet(Calendar.ZONE_OFFSET)) { calendar.setTimeZone(TimeZone.getDefault()); } StringBuffer dateString = new StringBuffer(16); appendDate(dateString, calendar); appendTimeZone(calendar, dateString); return dateString.toString(); }
新方法中,去掉appendTimeZone(calendar, dateString);一行,就可以了。
3. 在系统变量中传入新类。 例如:com.util.ConverterUtil是新的类
System.setProperty(ConverterUtil.SYSTEM_PROPERTY_ADB_CONVERTERUTIL, "com.util.ConverterUtil");