我正在创建我的第一个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一样凌乱:
我在英国是否重要?这会要求我使用不同的代码吗?
答案 0 :(得分:2)
您的文字被解释为格式化字符串,如DateTime.ToString(string format)
中所述:
format
参数应包含[...]自定义格式模式(see Custom Date and Time Format Strings)
只有未识别的字符按原样打印,但正如您所注意到的那样,s
被Seconds
的值替换。
要让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"));