2012-08-29 49 views
0

我的字符串中包含的值:08/20/2012-10.32.19格式在字符串被改變

我想在字符串數據類型本身的輸出作爲08/20/2012 10:32:19 [格式MM/dd/yyyy HH:mm:ss

請幫忙!!

+0

我嘗試了很多使用'String.Format'的方法,但沒有得到正確的方法 – venkat

+0

你從哪裏得到這個字符串? – ChaosPandion

+0

我在WPF應用程序中使用MVVM模型,因此我的web服務正在爲字符串數據類型本身的日期時間interms提供響應。我需要將帶格式的字符串'MM/dd/yyyy HH:mm:ss'傳遞給Model對象,該對象通過'binding'標籤綁定到XAML中的Textbox控件。 – venkat

回答

8

您可以將字符串轉換爲DateTime,然後以所需的格式使用.ToString()

DateTime dt = DateTime.ParseExact("08/20/2012-10.32.19", "M/d/yyyy-HH.mm.ss",CultureInfo.InvariantCulture); 
string test = dt.ToString("MM/dd/yyyy HH:mm:ss"); 

測試將有

08/20/2012 10:32:19 

編輯:基於註釋

可以指定多個日期格式,然後相應地解析。

string[] formats = new string[] { "M/d/yyyy-HH.mm.ss", "yyyy-M-d-HH.mm.ss" }; 
string dtTest1 = DateTime.ParseExact("08/20/2012-10.32.19", 
            formats, 
            CultureInfo.InvariantCulture, 
            DateTimeStyles.None) 
            .ToString("MM/dd/yyyy HH:mm:ss"); 

或者在單行

string dtTest2 = DateTime.ParseExact("08/20/2012-10.32.19", 
            new string[] { "M/d/yyyy-HH.mm.ss", "yyyy-M-d-HH.mm.ss" }, 
            CultureInfo.InvariantCulture, 
            DateTimeStyles.None) 
            .ToString("MM/dd/yyyy HH:mm:ss"); 

這將滿足您的兩個案例日期:

08/20/2012-10.32.19 
2012-08-20-10.32.19 
+0

你正在調用'ToString()'在字符串上,你需要首先解析它到'DateTime'然後調用'ToString()',上面的代碼工作 – Habib

+0

我在WPF應用程序中使用MVVM模型,因此我webservice正在爲字符串數據類型本身的datetime interms提供響應。 **我可以使用單行代碼**將帶格式的字符串'MM/dd/yyyy HH:mm:ss'傳遞給Model對象,該對象通過'binding'標籤綁定到XAML中的Textbox控件。 – venkat

+1

@sukumar,MVVM不在問題中,我對此不太確定,但上面的代碼可以像'string Test = DateTime.ParseExact(「08/20/2012-10.32.19」,「 M/d/yyyy-HH.mm.ss「,CultureInfo.InvariantCulture).ToString(」MM/dd/yyyy HH:mm:ss「);' – Habib

1

您可以使用becouse你的字符串很簡單隻需要fiormating

String a="08/20/2012-10.32.19".Replace('-', ' ').Replace('.', ':'); 

我希望通過作品爲您

+0

誓言!這是驚人的,偉大的工作!謝謝。我在我的代碼中使用了這個代碼行。 – venkat

+0

嘿你的代碼獲取失敗的字符串「2012-08-20-10.32.19」。日期時間字符串的一個屬性的某處我得到這個值。這是拋出異常作爲無效日期。請幫忙! – venkat

+0

@sukumar,這是確切的原因,你應該使用'DateTime',使用它作爲字符串會給你的問題,當你期望多個字符串格式的日期 – Habib

0

我們有各種內置的格式一樣ToLongDateTime,在.net

string formatDate = txtdte.ToShortDateTime(); 

ToShortdateTime這將返回字符串,因此無需任何其他轉換。如果你是特定的格式,ToString需要參數,如ToString("dd/mm/yyyy")

+0

如果'txtdte'本身'string'數據類型,那麼我不認爲'ToShortDateTime'將在智能感知中顯示。如果您對我的要求使用這種格式非常瞭解,請提供一個示例。 – venkat