日期&时间没有正确显示

时间:2013-12-15 16:52:17

标签: c# winforms

我正在创建我的第一个win表单应用程序,用C#编写。我添加了一些代码来在第一个标签页上显示当前日期和时间,如下所示:

    private void Form1_Load(object sender, EventArgs e)
    {
        // connect to database
        c = new Connection();
        connect.ConnectionString = c.getConnection();

        //deals with date and time
        Timer tmr = new Timer();
        tmr.Interval = 1000;//ticks every 1 second
        tmr.Tick += new EventHandler(tmr_Tick);
        tmr.Start();

    }
    private void tmr_Tick(object sender, EventArgs e)
    {
        labeltime.Text = DateTime.Now.ToString(" Todays Date: dd/MM/yyyy\n\n Current     Time: HH:mm:ss");
    }

输出不正确。日期和时间都是正确的,并且很好地勾勒出来,但是我希望它显示“今日日期:”它像“To15a1342(42是从时间开始的秒,滴答作响)”和“当前时间”读取CuRRenP Ti50e一样凌乱:

我在英国是否重要?这会要求我使用不同的代码吗?

2 个答案:

答案 0 :(得分:2)

您的文字被解释为格式化字符串,如DateTime.ToString(string format)中所述:

  

format 参数应包含[...]自定义格式模式(see Custom Date and Time Format Strings

只有未识别的字符按原样打印,但正如您所注意到的那样,sSeconds的值替换。

要让ToString()忽略您的文字,您需要escape文字,最好使用单引号(')(替代方法是每个文字前面的反斜杠):< / p>

 string dateTimeString = DateTime.Now
     .ToString("' Todays Date: 'dd/MM/yyyy'\n\n Current     Time: 'HH:mm:ss");

或者从不同的部分构建字符串:

var now = DateTime.Now;
string dateTimeString = "' Todays Date: ";
dateTimeString += now.ToString("dd/MM/yyyy");
dateTimeString += "\n\n Current     Time: ";
dateTimeString += now.ToString("HH:mm:ss");

上面的字符串连接示例可以简化为@ Rohit的答案演示。

答案 1 :(得分:1)

像这样使用String.Format

string dateTime = String.Format("Todays Date: {0}, Current Time: {1}", 
                                 DateTime.Now.ToString("dd/mm/yyyy"), 
                                 DateTime.Now.ToString("hh:mm:ss"));