У меня есть объекты схемы java, созданные из схемы xsd с использованием JAXB.
То, что я пытаюсь сделать, это установить значения тегов xml с помощью методов установки объекта схемы java, а затем упорядочить объекты java. Однако в окончательном сгенерированном xml я вижу, что временная метка, сгенерированная для типов xs: datetime, не имеет миллисекунд.
Я ожидаю увидеть дату вроде "2013-06-28T01:20:50.000-04:00", а получаю только "2013-06-28T01:20:50". -04:00" без миллисекунд.
Вызов сеттера
obj.setTransactionDateTime(getTimestamp("2013-06-28 01:20:50"));
метод getTimestamp
public Calendar getTimestamp(String dateStr)
{
Date returnDate = null;
if(dateStr == null)
{
return null;
}
try
{
SimpleDateFormat srcFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = srcFormatter.parse(dateStr);
SimpleDateFormat destFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
returnDate = destFormatter.parse(destFormatter.format(date));
}
catch (ParseException e)
{
dbacc.logError("Error while parsing date string" + e.getMessage());
}
Calendar cal = Calendar.getInstance();
cal.setTime(returnDate);
return cal;
}
Привязка для типов datetime определяется следующим образом...
<jxb:javaType name="java.util.Calendar" xmlType="xsd:dateTime" parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/>
Не уверен, что не так с кодом. Любая помощь очень ценится.