xml 를 javaBean 으로 해석 할 때 Date 형식 문제 해결
2817 단어 WebService
/**
* xml JavaBean
* @param xml
* @param c
* @return
*/
public static T converyToBean(String xml, Class c) {
T t = null;
try {
JAXBContext context = JAXBContext.newInstance(c);
Unmarshaller unmarshaller = context.createUnmarshaller();
t = (T) unmarshaller.unmarshal(new StringReader(xml));
} catch (Exception e) {
logger.error("xml convert to javaBean err:",e);
}
return t;
}
기본적으로 해석 가능 한 시간 형식 은 2030 - 12 - 31T 00: 00 입 니 다.
시간 형식 이 2030 - 12 - 31 00: 00 시 에는 해석 할 수 없습니다.
해결 방법
해석 클래스 만 들 기
import javax.xml.bind.annotation.adapters.XmlAdapter;
import java.text.SimpleDateFormat;
import java.util.Date;
public class JaxbDateSerializer extends XmlAdapter {
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public String marshal(Date date) throws Exception {
return dateFormat.format(date);
}
@Override
public Date unmarshal(String date) throws Exception {
return dateFormat.parse(date);
}
}
javaBean 속성 에 주석 을 추가 하 는 get 방법
@XmlJavaTypeAdapter(JaxbDateSerializer.class)
public Date getCREATED() {
return CREATED;
}
public void setCREATED(Date CREATED) {
this.CREATED = CREATED;
}
public String getLAST_UPD_BY() {
return LAST_UPD_BY;
}
public void setLAST_UPD_BY(String LAST_UPD_BY) {
this.LAST_UPD_BY = LAST_UPD_BY;
}
@XmlJavaTypeAdapter(JaxbDateSerializer.class)
public Date getLAST_UPD() {
return LAST_UPD;
}
public void setLAST_UPD(Date LAST_UPD) {
this.LAST_UPD = LAST_UPD;
}
이 때 xml 를 다시 분석 하면 성공 적 으로 해석 할 수 있 습 니 다.
public static void main(String[] args) {
String xml="";
MdmResp pricebean=JaxbUtil.converyToBean(xml,MdmResp.class);
System.out.println(pricebean);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
귀멸의 칼날, 토호를 멸비정상적인 고부하에 대비하는 것은 쉽지 않은 것은 중대한 인식에 있습니다. 10/13(화) 00:00:00←예매권의 좌석 지정・신규 감상권 구입 접수 개시 나도 귀멸의 칼 팬 중 한 명으로 예매권을 구입하고 좌석 지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.