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

时间:2011-04-27 15:56:57

标签: 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>

在后面的代码中我绑定网格视图如下:(给出最小代码)

GridView1.DataSource = dt2;
GridView1.DataBind();

但gridview列显示的日期如下:

4/12/2011 12:00:00 AM    
4/4/2011 12:00:00 AM

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

我知道如何使用ToString和SubString进行格式化。但我无法在gridview中执行此操作。

5 个答案:

答案 0 :(得分:25)

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

Eval("date_of_joining", "{0:dd/MM/yyyy}")

答案 1 :(得分: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);
}

这一位将在你的标记中出现

    <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>

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

答案 2 :(得分:7)

使用"{0:d}"作为短日期格式。 尝试

 Text='<%# Eval("paid_priviledge_date","{0:d}") %>'

Text='<%# Eval("date_of_joining", "{0:d}") %>'

答案 3 :(得分:1)

您可以在绑定字段中使用DataFormatString,同样可以设置如下:

<asp:Label ID="Label8" runat="server" Text='<%# Eval("paid_priviledge_date","{0:d}") %>'/>

答案 4 :(得分:0)

Text='<%# (Convert.ToDateTime((Eval("date_of_joining")))).ToShortDateString() %>'

这是我发现的最简单的方式。