动态更改日期

时间:2009-12-23 05:40:15

标签: c# datetime

这个当前的日期和时间,但我想让时间像系统时间一样动态变化:

DateTime t = DateTime.Now;
toolStripStatusLabel.Text = "Current Date:" + " " + t.ToString("MMMM dddd dd, yyyy")+"  " +"current Time:" +" " +t.ToString("hh:mm ss tt");

4 个答案:

答案 0 :(得分:1)

在winform上添加计时器控件标签控件

表单加载事件中添加代码

yourTimer.Start();

在定时器控件的属性表中,将间隔属性更改为1000.

添加计时器勾选事件

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

答案 1 :(得分:0)

我的猜测是你希望ToolStripStatusLabel文本随时间变化。为此,您需要有一个计时器回调。将一个Timer添加到您的表单并在其Elapsed处理程序中,将文本设置为当前时间,就像您已经在做的那样。

答案 2 :(得分:0)

否则,您可以从服务器端设置一次,并不断更改Javascript中的工具提示值。在这种情况下,您不必一次又一次地转到服务器端:)

答案 3 :(得分:0)

更多信息

在您的代码中:

DateTime t = DateTime.Now;
toolStripStatusLabel.Text = "Current Date:" + " " 
                            + t.ToString("MMMM dddd dd, yyyy")
                            + "  " + "current Time:" 
                            + " " + t.ToString("hh:mm ss tt");

当前日期仅评估一次。 也就是说,DateTime t = DateTime.Now将当前日期存储在t中,并且该值永远不会再次更新。

所以,即使你使用't'一百次,也总会有分配给它的值。

就像旁观者指出的那样,你需要每隔一秒左右更新一次。

建议:

不应该使用“somestring”+“someotherstring”+“yetanotherstring” 请改用String.Format。例如(基于旁观者的代码)

private void yourTimer_Tick(object sender, EventArgs e)
{
    yourLabel.Text = String.Format("Current Date: {0}",  
                                  DateTime.Now.ToString("dd MMM yyyy hh:mm:ss"));
}