Floats must come first before the content that you want them to wrap around. A float will float either left or right from the position it finds itself in. As a float is basically a block display element it will start on a new line which means that any content that came before will always be above it.
Only following content will wrap around the float. If this wasn't the case then all floats would go to the top of the monitor and stay there and be useless
There is one caveat to this and if a float starts on the same line as some inline content then the content on that single line is displaced to allow the float to occupy its position. This is the part that IE7 and under get wrong and for them floats must always come first. Therefore if you want some text next to a float then make sure the float is first in the html.
If you don't want to change the order of the text in the html then wrap the span around the first segment and set it to float:left and the set the parent to text-align:right .
<li><a href="#">[B]<span>test one</span>[/B]2011-06-21</a></li>