在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;
答案 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>