在输入控件类型中显示时间



在 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>

最新更新