Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将字符串转换为日期yyyy MMM_C#_String_Date - Fatal编程技术网

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"));