如何格式化时间戳以仅在网格视图中显示日期

Rob*_*ari 12 asp.net gridview

在aspx页面中,我绑定了这样的标签:

  <asp:TemplateField HeaderText="Date of Joining">
            <ItemTemplate>
                <asp:Label ID="Label6" runat="server" Text='<%# Eval("date_of_joining") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Paid Priviledge Date">
            <ItemTemplate>
                <asp:Label ID="Label8" runat="server" 
                    Text='<%# Eval("paid_priviledge_date") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

在后面的代码我绑定网格视图像这样:(给出最小代码)

GridView1.DataSource = dt2;
GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)

但gridview列显示如下日期:

4/12/2011 12:00:00 AM    
4/4/2011 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)

请建议如何删除时间戳部分并仅显示日期部分.

我知道如何通过使用ToString和SubString格式化来完成此操作.但我无法在gridview中执行此操作.

ili*_*ian 25

您可以为eval语句指定格式字符串:

Eval("date_of_joining", "{0:dd/MM/yyyy}")
Run Code Online (Sandbox Code Playgroud)


Cha*_*ell 11

FormatDate在代码隐藏中创建一个方法,并从gridview中调用它.
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
http://www.csharp-examples.net/string-format-datetime/

这部分将介绍你的代码

private object FormatDate(DateTime input)
{
    return String.Format("{0:MM/dd/yy}", input);
}
Run Code Online (Sandbox Code Playgroud)

这一点将进入你的标记

    <asp:TemplateField HeaderText="Date of Joining">
        <ItemTemplate>
            <asp:Label ID="Label6" runat="server" Text='<%# FormatDate(Eval("date_of_joining")) %>'></asp:Label>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Paid Priviledge Date">
        <ItemTemplate>
            <asp:Label ID="Label8" runat="server" 
                Text='<%# FormatDate(Eval("paid_priviledge_date")) %>'></asp:Label>
        </ItemTemplate>
    </asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

这就是我所说的DRY方法.如果您需要以任何方式修改格式.您可以简单地编辑方法背后的代码,它会降低您对所有标记的甜蜜爱.


Bal*_*a R 7

使用"{0:d}"短日期格式.尝试

 Text='<%# Eval("paid_priviledge_date","{0:d}") %>'
Run Code Online (Sandbox Code Playgroud)

Text='<%# Eval("date_of_joining", "{0:d}") %>'
Run Code Online (Sandbox Code Playgroud)