DateTime格式无法正确显示

时间:2013-07-12 10:31:49

标签: c# wpf

首先,对于提出之前被问过的问题表示道歉,但即使是示例,我也没有得到预期的结果。

我要做的就是显示当前时间,但是我注意到日期时间格式是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;
    }

3 个答案:

答案 0 :(得分:9)

只需使用custom format string

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

standard one

var today = DateTime.Now.ToString("T");

答案 1 :(得分:0)

string now = DateTime.Now.ToString("HH:mm:ss"); 

检查TimeZoneInfo课程,了解更详细的全球化。

答案 2 :(得分: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