0

你好Guyz我有这个关于日期和时间的小问题这是我的代码

labelDateAndTime.Text = DateTime.Now.ToString("yyyy,MM hh:mm:ss tt");

我的问题是时间没有移动(改变)。但每当我运行我的程序时,它都会得到正确和准确的时间

4

5 回答 5

2

问题在于提神。您可以将计时器添加到您的应用程序中,并且在计时器滴答事件中您可以刷新标签中的文本。希望这可以帮助。

于 2013-06-07T07:20:49.613 回答
2

您可以创建一个循环以每秒刷新您的日期时间。

为样品。

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 更好更准确。

于 2013-06-07T07:25:33.983 回答
0

那是因为 DateTime.Now 在您调用它的那一刻起作用。

于 2013-06-07T07:22:20.390 回答
0

这是一个一次性的任务。您将当前时间转换为字符串并将其分配给标签。当然它不会改变,你没有编写代码来改变它。看看各种Timer类。

于 2013-06-07T07:22:28.810 回答
0
<!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>
于 2013-06-07T07:35:03.530 回答