C#将字符串转换为日期yyyy MMM
我需要在C#将字符串转换为日期yyyy MMM,c#,string,date,C#,String,Date,我需要在2014-06输出日期中转换此输入字符串2014年6月,我尝试了此解决方案: DateTime dt; DateTime.TryParseExact(Input.ToString(), "MMM yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt); Response.Write(dt.ToString("yyyy MMM")); 但在输出中我有0001 ja
2014-06
输出日期中转换此输入字符串2014年6月
,我尝试了此解决方案:
DateTime dt;
DateTime.TryParseExact(Input.ToString(), "MMM yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);
Response.Write(dt.ToString("yyyy MMM"));
但在输出中我有0001 jan
,为什么
我将非常感谢你在解决这个问题上给我的任何帮助
提前感谢。您的格式字符串应为“MMMM-yyyy”,输入格式为“2014年6月”,输出格式为“2014-06”:
- “MMM”表示3个字母的版本,如六月或九月
- “MMMM”表示完整的月份名称,如六月或九月
- “MM”表示数字表示,如06或09
string Input = "june 2014";
DateTime dt;
DateTime.TryParseExact(Input.ToString(), "MMMM yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);
Console.WriteLine(dt.ToString("yyyy-MM"));
请参阅此问题中James Curran的回答以明确说明,它之所以输出
0001 jan
是因为解析失败,该函数被设计为返回DateTime.Min
,如果解析失败,在尝试将dt
用作日期对象之前,您不需要检查TryParse
是否成功?ErikE,我只是以OP的示例和固定格式字符串为例。但你是对的,如果输入质量得不到保证,建议进行检查。在尝试将dt
用作日期对象之前,你不会检查TryParse
是否成功?这一点很好。我将在我的帖子中包括这一点,但我认为OP需要告诉我们应该写什么默认值。可能有错误消息吗?
string Input = "june 2014";
DateTime dt;
DateTime.TryParseExact(Input.ToString(), "MMMM yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);
Console.WriteLine(dt.ToString("yyyy-MM"));