修改日期格式或字符串长度的标签ItemTemplate

本文关键字:标签 ItemTemplate 字符串 日期 格式 修改 | 更新日期: 2023-09-27 18:10:57

是否有一种方法来格式化文本我从我的数据集(这是一个日期类型)不显示时间。

我有它在我的sql查询格式日期不显示时间,但后来我不得不把它变成一个字符串,我需要的数据类型仍然是一个日期。

所以我不能再使用这个了

CONVERT(varchar(15),em.endDate,111) as endDate -> 2001/05/05

这个不行

CONVERT(Date,em.endDate,111) --> Output: Output: 5/5/2001 12:00:00 AM

这是我的模板。

 <asp:TemplateField HeaderText="endDate" SortExpression="endDate">
     <ItemTemplate>
         <asp:Label ID="lblEndDate" runat="server" Text='<%# Bind("endDate") %>'></asp:Label>
     </ItemTemplate>
 </asp:TemplateField>

是否有办法修改模板,以削减日期的时间?

修改日期格式或字符串长度的标签ItemTemplate

是的,您可以使用ToShortDateString:

Text='<%# ((DateTime)Eval("endDate")).ToShortDateString() %>'

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

标准日期和时间格式字符串

或使用RowDataBound(假设GridView,也适用于其他web绑定控件,如中继器与ItemDataBound事件):

protected void Gridview1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRow row = ((DataRowView)e.Row.DataItem).Row; // you might use a different datasource, use the debugger if you are unsure
        Label lblEndDate = (Label)e.Row.FindControl("lblEndDate");
        lblEndDate.Text = row.Field<DateTime>("endDate").ToString("d");
    }
}
<asp:TemplateField SortExpression="MyDate"  HeaderText="MyDate">
    <ItemTemplate>
        <asp:Label ID="lblMyDate" runat="server"
            Text='<%# Eval("MyDate", "{0:dd/MM/yyyy}") %>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

可以使用

<asp:Label ID="lblEndDate" runat="server" Text='<%#Eval("EndDate","{0: dd- MMM - yyyy}")%>' />

您可以将字符串解析为DateTime,并使用ToString方法将其格式化,而不包含时间。

根据你想要的格式,你可以这样做

myDateTime.ToString("d MMM yyy");