2013-07-12 104 views
0

首先,道歉問問題已被問過,但即使與例子,我沒有得到預期的結果。日期時間格式無法正確顯示

我所要做的就是顯示當前時間,但是我注意到datetime格式是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; 
    } 
+0

感謝Corak神速的答案。 – ullevi83

+0

比@Oded慢,所以我刪除了評論並向上投票。 – Corak

回答

9

只需使用一個custom format string

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

還是standard one

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

這是正確的解決方案。如果在像「時間分隔符」是「」的「孟加拉語(印度)」這樣的文化中使用,它會以例如「 「17.18.19」。 –

+2

'var today = DateTime.Now.ToString(「T」);'then? – Corak

+0

謝謝,謝謝,三次謝謝。很容易,當你知道如何! – ullevi83

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

檢查TimeZoneInfo類更詳細的全球化。

+0

你爲什麼要拿一個日期,將它轉換成一個字符串,然後分割該字符串來取日期部分?只需獲取日期並將其分配給必填字段即可。 –

+0

爲什麼不'var now = DateTime.Now; var hours = now.ToString(「HH」); var minutes = now.ToString(「mm」); var seconds = now.ToString(「ss」)'?但即便如此,爲什麼還要有單獨的變量呢? – Corak

+0

老實說,我以爲他想要它的部分,但後來我看到他結合他們,所以我的壞:) –

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