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

时间:2011-02-17 06:42:08

标签: c# .net winforms time label

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

7 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:8)

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

您可以使用DateTime.Now等内容获取当前时间。

答案 2 :(得分:7)

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

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

答案 3 :(得分:6)

请尝试以下代码:

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

答案 4 :(得分:4)

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

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

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

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

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

答案 5 :(得分:0)

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

此方法可能会给您一些尊重,而不是轮询高频率以在秒数更改时触发更新。

如果您喜欢稳压器,您可以通过使用要显示的时间戳的毫秒属性调整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时,错误将切换+/-及时保持读出位置。

答案 6 :(得分:0)

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;
    } 
}