I found that the timestamp info in the xml data retrieved from method Message.toXML() does not contain milisecond data:
<message id="purple4deace37" to="user1@qiduogroup/Smack" from="testroom3@permanent.qiduogroup/user2@qiduogroup"
type="groupchat"><body>12</body><x xmlns="jabber:x:delay" stamp="20130513T03:25:44" from="testroom3@permanent.qiduogroup/user2@qiduogroup"></x><x xmlns="jabber:x:delay" stamp="20130513T03:25:44" from="testroom3@permanent.qiduogroup/user2@qiduogroup"></x></message>
however I also found that the corresponding packet does contain milisecond data after I enabled smack debug mode:
<message type="groupchat" id="purple4deace37" to="user1@qiduogroup/Smack" from="testroom3@permanent.qiduogroup/user2@qiduogroup"><body>12</body><delay xmlns="urn:xmpp:delay" stamp="2013-05-13T03:25:44.399Z" from="testroom3@permanent.qiduogroup/user2@qiduogroup"/><x xmlns="jabber:x:delay" stamp="20130513T03:25:44" from="testroom3@permanent.qiduogroup/user2@qiduogroup"/></message>
Why does smack API trim out the milisecond data?