在 C# 中,我有一个 DateTime 字段,我只想在其中显示类型为"time"的输入控件中的 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;
使用DateTime
类本身ToString(format)
方法:
DateTime dt = ((System.DateTime)pDS.Tables[0].Rows[0]["StartTime"]);
txtStartTime.Text = dt.ToString("hh:mm:ss");
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;
Use 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>