답변은 this에서 발견되었지만 첫 번째 대답에서는 발견되지 않았습니다. 나는 을 확장하여 org.apache.axis2.databinding.utils.ConverterUtil
을 확장하고 appendTimeZone()
메서드 호출을 제거하여 convertToString(Calendar value)
에 문제 (Michał Niklas의 대답과 같이)를 해결했습니다. 또한 appendTime(Calendar value, StringBuffer dateString)
방법을 변경해야했습니다. 내 CustomConverterUtils는 다음과 같습니다.
public class CustomeConverterUtils extends ConverterUtil {
public static String convertToString(Calendar value) {
if (value.get(Calendar.ZONE_OFFSET) == -1){
value.setTimeZone(TimeZone.getDefault());
}
StringBuffer dateString = new StringBuffer(28);
appendDate(dateString, value);
dateString.append("T");
//adding hours
appendTime(value, dateString);
return dateString.toString();
}
public static void appendTime(Calendar value, StringBuffer dateString) {
if (value.get(Calendar.HOUR_OF_DAY) < 10) {
dateString.append("0");
}
dateString.append(value.get(Calendar.HOUR_OF_DAY)).append(":");
if (value.get(Calendar.MINUTE) < 10) {
dateString.append("0");
}
dateString.append(value.get(Calendar.MINUTE)).append(":");
if (value.get(Calendar.SECOND) < 10) {
dateString.append("0");
}
dateString.append(value.get(Calendar.SECOND));
}
}
그리고 이러한 코드도 입력해야합니다. Spring Boot를 사용할 때 Application 클래스에 넣어야했습니다.
public static void main(String[] args) throws Exception {
String convert_class = "com.ykkh.test.CustomeConverterUtils";
System.setProperty(ConverterUtil.SYSTEM_PROPERTY_ADB_CONVERTERUTIL, convert_class);
SpringApplication.run(Application.class, args);
}