如何在 SimpleXmlConverter 中为 Retrofit 1.9.0 设置自定义日期格式?

How to set custom Date format in SimpleXmlConverter for Retrofit 1.9.0?

我正在尝试通过 Retrofit 和 SimpleXMLConverter 解析 xml-answer 到带注释的对象并需要处理自定义格式的日期。

使用 Gson 解析 Json 非常简单。 只需通过 GsonConverter 中设置的自定义日期格式传递 GsonBuilder。

Converter converter = new GsonConverter(
    new GsonBuilder().setDateFormat(CUSTOM_DATE_FORMAT_STRING).create()
);
RestAdapter.Builder builder = new RestAdapter.Builder()
   .setEndpoint(URL)
   .setConverter(converter);

但是当你处理 XML 和 SimpleXMLConverter 时,事情就没那么简单了。 有什么想法吗?

好吧,我找到的唯一选项是@Commit - 注释。 获取 Date 作为字符串,然后在 @Commit-annotated 方法中解析它:

public class ParsedObject {

    private static final SimpleDateFormat SDF = new SimpleDateFormat(CUSTOM_DATE_FORMAT);

    private Date mDate;

    @Element(name = "date")
    private String mXmlDate;

    @Commit
    private void parseDate() {
        if(mXmlDate != null) {
            try {
                mDate = SDF.parse(mXmlDate);
            } catch (ParseException e) {
                // do something
            } finally {
                mXmlDate = null;
            }
        }
    }
}