显示时间以输入控制的时间类型

时间:2018-09-27 20:36:36

标签: c# html5

在C#中,我有一个DateTime字段,我只想在类型为'time'的输入控件中显示时间。

现场样本:

<asp:TextBox ID="txtStartTime" runat="server" MaxLength="10" CssClass="form-control" type="time"></asp:TextBox>

这些都不起作用:

txtStartTime.Text = ((System.DateTime)pDS.Tables[0].Rows[0]["StartTime"]).ToShortTimeString(); 

System.String strResult = System.String.Format("{0:hh:mm tt}", pDS.Tables[0].Rows[0]["StartTime"].ToString());
txtStartTime.Text = strResult;

3 个答案:

答案 0 :(得分:0)

使用ToString(format)类本身的DateTime方法:

DateTime dt = ((System.DateTime)pDS.Tables[0].Rows[0]["StartTime"]);
txtStartTime.Text = dt.ToString("hh:mm:ss");

答案 1 :(得分:0)

String.Format需要一个对象来应用格式。该文档告诉我们该方法:

  

用指定对象的字符串表示形式替换字符串中的一个或多个格式项。

string的字符串表示形式是string本身。因此,格式字符串对传递给它的字符串没有影响。 但它可以格式化Datetime对象,因为您使用的格式具有有效的字符串表示形式匹配。

因此只需删除ToString调用,您的方法就可以使用。

System.String strResult = System.String.Format("{0:hh:mm tt}", pDS.Tables[0].Rows[0]["StartTime"]);
txtStartTime.Text = strResult;

答案 2 :(得分:0)

使用Datetime.ToString(String)
要获取小时格式,只需使用ToString("hh:mm:ss")

示例:

 <%

        var dt = DateTime.Now;//((System.DateTime)pDS.Tables[0].Rows[0]["StartTime"]);
        txtStartTime.Text = dt.ToString("hh:mm:ss");

    %>

    <!DOCTYPE html>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:TextBox ID="txtStartTime" runat="server" MaxLength="10" CssClass="form-control" type="time"></asp:TextBox>
        </form>
    </body>
    </html>