ullevi83
ullevi83

Reputation: 199

DateTime format not showing correctly

Firstly, apologies for asking a question that has been asked before, but even with the examples I am not getting the desired results.

All I am trying to do is display the current time, which it does, but I noticed that the datetime format was 9:5:6 instead of 09:05:06. I read the examples about formatting DateTime but it doesn't work for some reason. Can anyone shed any light on where I am going wrong?

Thanks for your help as always.

    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;
    }

Upvotes: 0

Views: 1155

Answers (3)

Oded
Oded

Reputation: 498952

Just use a custom format string:

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

Or the standard one:

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

Upvotes: 9

Michael Moreno
Michael Moreno

Reputation: 181

I think there are many ways to tackle this issue.

Personally, and to keep things simple, I would do it this way:

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;
}

But if you want for some reasons to keep your initial logic then this would do it too.

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;
}

You may also wish to look at this http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

Upvotes: 0

sm_
sm_

Reputation: 2602

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

Check TimeZoneInfo Class for more detailed globalization.

Upvotes: 0

Related Questions