Why don't you go for TemplateField and use the following, in order to display according to local time:
<asp:TemplateField HeaderText="DateColumn">
<ItemTemplate>
<asp:Label ID="lbl_gv_MyDate" runat="server" Text='<%# CType(Eval("DateColumn", "{0:dd-MMM-yyyy}"), DateTime).ToLocalTime%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Keep in mind that when ever you save into DB, DateTime value must be saved with its Universal value:
Dim myDateTime As DateTime
myDateTime = DateTime.Now.ToUniversalTime
PS: There is nothing called "Universal Format" ... It's merely a reference point to GMT. The method ".ToUniversalTime" takes Hours Difference from your local machine and "adds" it to the DateTime value before it gets saved in DB ... This will ensure all DateTime Values are referencing to the same Longitude (GMT).