我已经使用 JAXB 从 xsd 模式生成了 java 模式对象。
我要做的是使用 java 模式对象设置器方法设置 xml 标记的值,然后编组 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"));
获取时间戳方法
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;
}
定义如下的日期时间类型的绑定...
<jxb:javaType name="java.util.Calendar" xmlType="xsd:dateTime" parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/>
不确定代码有什么问题。任何帮助深表感谢。