0

まず、以前に尋ねられた質問をして申し訳ありませんが、例を使用しても、望ましい結果が得られません。

私がやろうとしているのは現在の時刻を表示することだけですが、日時の形式が 09:05:06 ではなく 9:5:6 であることに気付きました。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

この問題に取り組む方法はたくさんあると思います。

個人的には、物事をシンプルにするために、次のようにします。

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 に答える