你好Guyz我有这个关于日期和时间的小问题这是我的代码
labelDateAndTime.Text = DateTime.Now.ToString("yyyy,MM hh:mm:ss tt");
我的问题是时间没有移动(改变)。但每当我运行我的程序时,它都会得到正确和准确的时间
问题在于提神。您可以将计时器添加到您的应用程序中,并且在计时器滴答事件中您可以刷新标签中的文本。希望这可以帮助。
您可以创建一个循环以每秒刷新您的日期时间。
为样品。
while(true)
{
labelDateAndTime.Text = DateTime.Now.ToString("yyyy,MM hh:mm:ss tt");
Thread.Sleep(1000); // Sleep one second.
}
异步调用此循环以不停止您的程序。
您还可以创建一个Timer:
refreshTimer = new Timer(10000);
refreshTimer.Elapsed += new ElapsedEventHandler(YourTimerFunction);
private void YourTimerFunction()
{
labelDateAndTime.Text = DateTime.Now.ToString("yyyy,MM hh:mm:ss tt");
}
两种方法都有效,但 Timer 更好更准确。
那是因为 DateTime.Now 在您调用它的那一刻起作用。
这是一个一次性的任务。您将当前时间转换为字符串并将其分配给标签。当然它不会改变,你没有编写代码来改变它。看看各种Timer
类。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Page Language="C#" %>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 1</title>
<script runat="server" type="text/c#">
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = "Panel refreshed at: " +
DateTime.Now.ToLongTimeString();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" id="ScriptManager1">
</asp:ScriptManager>
<asp:UpdatePanel runat="server" id="UpdatePanel1">
<ContentTemplate>
<asp:Timer runat="server" id="Timer1" Interval="10000" OnTick="Timer1_Tick"> </asp:Timer>
<asp:Label runat="server" Text="Page not refreshed yet." id="Label1">
</asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Label runat="server" Text="Label" id="Label2"></asp:Label>
</form>
</body>
</html>