0

有没有办法格式化我从数据集(日期类型)获得的文本以不显示时间。

我在我的 sql 查询中使用它来格式化日期以不显示时间,但后来我不得不将它更改为字符串,并且我需要数据类型仍然是日期。

所以我不能再使用这个了......

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

这不起作用

CONVERT(Date,em.endDate,111) --> 输出:输出: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>

有没有办法修改模板以删除日期时间?

4

4 回答 4

6

是的,您可以使用ToShortDateString

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

或者

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

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

或使用RowDataBound(假设GridView,也适用于其他 webdatabound 控件,如带有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");
    }
}
于 2013-04-26T12:39:00.253 回答
1
<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>
于 2019-03-13T23:20:58.280 回答
0

您可以使用

<asp:Label ID="lblEndDate" runat="server" Text='<%#Eval("EndDate","{0: dd- MMM - yyyy}")%>' />
于 2021-09-14T14:37:31.033 回答
-1

您可以将字符串解析为DateTime,并使用该ToString方法在没有时间的情况下对其进行格式化。

根据您想要的格式,您可以执行类似的操作

myDateTime.ToString("d MMM yyy");
于 2013-04-26T12:40:19.647 回答