バグhttp://jira.codehaus.org/browse/JACKSON-288を取得しましたが、バージョン 1.6.2 でバグを修正する必要があるとのことでした。
Jersey JSON や Dateなど、多くのスレッドを参照しています
XML を使用して Date(ActionScript 3) を java.util.Date に変換するにはどうすればよいですか?
バージョン 1.12、1.14、1.17.1 を試しましたが、すべてが私の側では機能しません。
@XmlRootElement(name="info")
@XmlAccessorType(XmlAccessType.NONE)
public class InfoVO {
private int infoId;
@XmlElement
@XmlJavaTypeAdapter(DateAdapter.class)
private Date createTime;
//...get/set
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.ws.rs.WebApplicationException;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class DateAdapter extends XmlAdapter<String, Date> {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public String marshal(Date v) {
return dateFormat.format(v);
}
@Override
public Date unmarshal(String v) {
try {
return dateFormat.parse(v);
} catch (ParseException e) {
throw new WebApplicationException();
}
}
}
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
しかし、DateAdapter をまったく呼び出すことができず、例外が発生しました。
2013-06-12 11:11:13.363:WARN::/xa/info/save/12121: org.codehaus.jackson.map.JsonMappingException: 文字列値 '2013-06 から java.util.Date のインスタンスを構築できません-08 08:00:00': 有効な表現ではありません (エラー: 日付 "2013-06-08 08:00:00" を解析できません: 標準形式のいずれとも互換性がありません ("yyyy-MM-dd'T' HH:mm:ss.SSSZ"、"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"、"EEE、dd MMM yyyy HH:mm:ss zzz"、"yyyy-MM-dd "))| [ソース: java.io.StringReader@b0ff5e1; 行: 8、列: 23] (参照チェーン経由: com.xchange.me.vo.InfoVO["createTime"])