如何使用c#在标签上显示更新时间作为系统时间?

我想使用C#在标签上显示当前时间,但随着系统时间的变化,时间会不断变化。 我怎样才能做到这一点?

向表单添加一个新的Timer控件,称为Timer1,将间隔设置为1000(ms),然后双击Timer控件以编辑Timer1_Tick的代码隐藏并添加以下代码:

this.label1.Text = DateTime.Now.ToString(); 

添加一个Timer控件,设置为每秒触发一次(1000 ms)。 在该计时器的Tick事件中 ,您可以使用当前时间更新标签。

您可以使用DateTime.Now东西获取当前时间。

您可以添加计时器控件并以1000毫秒的间隔指定它

  private void timer1_Tick(object sender, EventArgs e) { lblTime.Text = DateTime.Now.ToString("dd-MMM-yyyy hh:mm:ss tt"); } 

请尝试以下代码:

 private void timer1_Tick(object sender, EventArgs e) { lblTime.Text = DateTime.Now.ToString("hh:mm:ss"); } 

您还必须在代码或属性窗口中设置要启用的计时器。

在代码中,请在表单加载部分中键入以下内容:

 myTimer.Enabled = true; myTimer.Interval = 1000; 

之后,请确保您的计时器事件与此类似:

 private void myTimer_Tick(object sender, EventArgs e) { timeLabel.Text = DateTime.Now.ToString("hh:mm:ss"); } 

由于计时器间隔不准确,您的更新可能处于错误同步状态,并且相对于实际的秒转换将会漂移。 在某些活动中,您将落后或在转换之前,并在时间显示中错过更新

这种方法可能会给你一些尊重,而不是轮询高频率以在秒数的变化时触发更新。

如果您喜欢稳压器,可以通过使用要显示的时间戳的毫秒属性调整1000毫秒定时器,将实时第二次转换后100毫秒安全地定位时间更新。

在计时器事件代码中执行以下操作:

 //Read time DateTime time = DateTime.Now; //Get current ms offset from prefered readout position int diffms = time.Millisecond-100; //Set a new timer interval with half the error applied timer.Interval = 1000 - diffms/2; //Update your time output here.. 

然后,下一个定时器间隔应在秒转换后100 ms处更接近所选点。 在转换+ 100ms时,错误将切换+/-及时保持读出位置。

 private int hr, min, sec; public Form2() { InitializeComponent(); hr = DateTime.UtcNow.Hour; min = DateTime.UtcNow.Minute; sec = DateTime.UtcNow.Second; } //Time_tick click private void timer1_Tick(object sender, EventArgs e) { hr = DateTime.UtcNow.Hour; hr = hr + 5; min = DateTime.UtcNow.Minute; sec = DateTime.UtcNow.Second; if (hr > 12) hr -= 12; if (sec % 2 == 0) { label1.Text = +hr + ":" + min + ":" + sec; } else { label1.Text = hr + ":" + min + ":" + sec; } }