I have a GridView with a BoundField containing a DateTime value, but instead of "01.07.2006 00:00:00" I wanted it to display "June, 2007". Easily fixed with a DataFormatString="{0:MMMM, yyyy}", right? Not so... It refused to apply the format string. Luckily, Google came to the resque again, Raj Kaimal had the same problem and solved it.
Turns out that the field value is HTML encoded before the format string is applied. Add a HtmlEncode="False" to the BoundField and the problem is solved. Thanks Raj!