【发布时间】:2017-08-31 13:31:54
【问题描述】:
我正在尝试将包含月份和年份(例如"April 2017")的字符串解析为DateTime:
var foo = DateTime.ParseExact(dateToParse, "MMMM yyyy", null, DateTimeStyles.None);
但是结果的格式是04/01/2017 00:00:00,而不是April 2017。我错过了什么吗?
【问题讨论】:
-
是的,您错过了 DateTime 没有隐式格式。这就是为什么你必须解析和格式化它的值。
-
您错过了
foo是DateTime.ParseExact()返回的结构,它是DateTime类型的对象。 它没有格式。您正在使用默认格式对其进行字符串化。谷歌 DateTime.ToString() 以了解如何以您喜欢的任何方式将 DateTime 格式化为字符串。 -
04/01/2017 是 2017 年 4 月,还是我错过了什么?
-
foo.ToString("MMMM yyyy")。瞧,你的“格式”回来了。 -
@demo - 通常的工作流程是:尽快将
string转换为DateTime,使用您想要的所有DateTime,然后尽可能晚地将其转换回string,例如在向人类展示之前不久。