ASP.net - C#设置输入类型:datetime-local到当前日期

时间:2016-03-23 05:34:17

标签: c# asp.net datetime datetime-format bootstrapping

这就是我在aspx文件中声明文本字段的方式:

<input type="datetime-local" class="form-control" id="inputDate" runat="server">

并在我的aspx.cs文件页面加载:

inputDate.Value = DateTime.Now.ToString("MM/dd/yyyy hh:mm tt");

我的目标是当页面加载时,inputDate字段包含当前日期,其中包含&#34; MM / dd / yyyy hh:mm tt&#34;格式

但它不起作用。什么也没发生。

4 个答案:

答案 0 :(得分:4)

输入datetime-local要求字母T以大写字母表示日期时间。 请在此处阅读:https://www.w3.org/TR/html-markup/input.datetime-local.html

示例:2016-03-23T05:47:48

所以你可以这样做:

var localDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss").Replace(' ','T'); 
inputDate.Value = localDateTime;

答案 1 :(得分:0)

在经典的ASP.NET WebForm中,您可以尝试以下操作:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>TEST</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </div>
    </form>
</body>
</html>

并在后面的代码中:

protected void Page_Load(object sender, EventArgs e)
{
    TextBox1.Text = DateTime.Now.ToString("MM/dd/yyyy hh:mm tt");
}

此外,您可以将ASP.NET TextBox控件用于只读功能,而不是Label。这将返回与服务器时区相关的DateTime值。为了实现世界时使用:

TextBox1.Text = DateTime.Now.ToUniversalTime().ToString("MM/dd/yyyy hh:mm tt");

然后,您可以应用AddHours()功能来调整时区差异。

希望这可能会有所帮助。

答案 2 :(得分:0)

如果您在使用日期格式时遇到问题,可以使用下面提到的DateTime.ToString()的重载版本。

DateTime.Now.ToString("MM/dd/yyyy hh:mm tt",
                      System.Globalization.CultureInfo.InvariantCulture);

无论您的服务器机器具有何种文化设置,它都会强制执行您指定的格式。

答案 3 :(得分:0)

html5输入datetime-local

var localDateTime = DateTime.Now.ToString("s"); 
inputDate.Value = localDateTime;