2017-08-31 147 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")

相关问题