2017-08-31 144 views
-1

我試圖分析包含了一個月,一年("April 2017"例如)爲DateTime的字符串:解析字符串日期時間與格式「MMMM YYYY」

var foo = DateTime.ParseExact(dateToParse, "MMMM yyyy", null, DateTimeStyles.None); 

然而結果的格式是04/01/2017 00:00:00而不是April 2017。我錯過了什麼?

+2

是的,你錯過了日期時間沒有一個隱含的格式的形式來顯示。這就是爲什麼你必須解析和格式化它的價值。 – Fildor

+1

您錯過了'foo'是'DateTime.ParseExact()'返回的結構的事實,它是'DateTime'類型的對象。 *它沒有格式*。您正在使用默認格式對其進行字符串化。 Google DateTime.ToString()以您喜歡的任何方式瞭解如何將DateTime格式化爲字符串。 –

+1

04/01/2017是2017年四月,或者我錯過了什麼? –

回答

0

「我試圖解析字符串」並解析您的字符串到DateTime工作沒有問題。

一個DateTime有一個值,沒有格式,如果你想再次得到另一刺痛表示,在必須使用DateTime.ToString特定的格式DateTime

例如:

DateTime dt = DateTime.ParseExact("April 2017", "MMMM yyyy", null, DateTimeStyles.None); 
string monthAndYear = dt.ToString("MMMM yyyy"); // same as your original string "April 2017" 
0

04/01/2017 00:00:00是您解析的DateTime實例的價值默認格式格式化輸出。

DateTime沒有隱式格式。

如果你想在你提到,你需要做的是這樣foo.ToString("MMMM yyyy")

相關問題