0

首先,很抱歉问了一个以前问过的问题,但即使有这些例子,我也没有得到想要的结果。

我要做的就是显示当前时间,但我注意到日期时间格式是 9:5:6 而不是 09:05:06。我阅读了有关格式化 DateTime 的示例,但由于某种原因它不起作用。谁能阐明我哪里出错了?

一如既往地感谢您的帮助。

    public MainWindow()
    {
        InitializeComponent();

        DispatcherTimer dispatchTimer = new DispatcherTimer();
        dispatchTimer.Tick += new EventHandler(dispatchTimer_Tick);
        dispatchTimer.Interval = new TimeSpan(0, 0, 1);
        dispatchTimer.Start();
    }

    private void dispatchTimer_Tick(object sender, EventArgs e)
    {
        var hour = DateTime.Now.Hour.ToString();
        var min = DateTime.Now.Minute.ToString();
        var sec = DateTime.Now.Second.ToString();
        var today = hour + ":" + min + ":" + sec;
        label1.Content = today;
        textBlock1.Text = today;
        button1.Content = today;
    }
4

3 回答 3

9

只需使用自定义格式字符串

var today = DateTime.Now.ToString("HH:mm:ss");

标准的:

var today = DateTime.Now.ToString("T");
于 2013-07-12T10:33:32.967 回答
0
string now = DateTime.Now.ToString("HH:mm:ss"); 

检查TimeZoneInfo类以获得更详细的全球化。

于 2013-07-12T10:37:40.983 回答
0

我认为有很多方法可以解决这个问题。

就个人而言,为了简单起见,我会这样做:

private void dispatchTimer_Tick(object sender, EventArgs e)
{
    string wTime = DateTime.Now.ToString("HH:mm:ss");
    // OR THIS WAY
    string wTime2 = DateTime.Now.ToString("T");

    label1.Content = wTime;
    textBlock1.Text = wTime;
    button1.Content = wTime;
}

但是,如果您出于某些原因想要保留您的初始逻辑,那么这也可以。

private void dispatchTimer_Tick(object sender, EventArgs e)
{
    string hour = DateTime.Now.Hour.ToString("00");
    string min = DateTime.Now.Minute.ToString("00");
    string sec = DateTime.Now.Second.ToString("00");
    var today = hour + ":" + min + ":" + sec;
    label1.Content = today;
    textBlock1.Text = today;
    button1.Content = today;
}

您可能还希望查看此http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

于 2013-07-12T10:42:49.997 回答