You have to do a request with <retrieve>
(see http://xmpp.org/extensions/xep-0136.html) then you can take a specific time from the received <list>
result. For example:
Send:
<iq type="get" id='pk1'>
<list xmlns="urn:xmpp:archive"
with="piyush@openfire">
<set xmlns="http://jabber.org/protocol/rsm">
<max>30</max>
</set>
</list>
</iq>
Receive:
<iq type="result" id="pk1" to="vivek@openfire/iphone">
<list xmlns="urn:xmpp:archive">
<chat with="piyush@openfire" start="2012-07-04T13:16:12.291Z"/>
<chat with="piyush@openfire" start="2012-07-05T08:25:31.555Z"/>
<chat with="piyush@openfire" start="2012-07-05T12:38:24.098Z"/>
<set xmlns="http://jabber.org/protocol/rsm">
<first index="0">15</first>
<last>25</last>
<count>3</count>
</set>
</list>
</iq>
Now you choose one of start
s and send (date and hour must be exacts):
<iq type="get" id='pk1'>
<retrieve xmlns="urn:xmpp:archive"
with="piyush@openfire"'
start="2012-07-04T13:16:12.291Z">
<set xmlns="http://jabber.org/protocol/rsm">
<max>100</max>
</set>
</retrieve>
</iq>
You will receive something like this (depends the max value -> max=30, bodies=30):
<iq type="result" to='vivek@openfire/iphone' id='page1'>
<chat xmlns="urn:xmpp:archive"
with="piyush@openfire"
start="2012-07-04T13:16:12.291Z"
subject="She speaks!"
version='4'>
<from secs="0"><body>Art thou not Romeo, and a Montague?</body></from>
<to secs="11"><body>Neither, fair saint, if either thee dislike.</body></to>
.
[28 more messages]
.
<from secs="9"><body>How cam'st thou hither, tell me, and therefore? </body>
</from>
<set xmlns="http://jabber.org/protocol/rsm">
<first index='0'>0</first>
<last>29</last>
<count></count>
</set>
<iq>