C#将字符串转换为日期yyyy-MMM

Ham*_*lis 0 c# string date

我需要在输出日期转换此输入字符串,我尝试了这个解决方案:june 20142014-06

DateTime dt;
DateTime.TryParseExact(Input.ToString(), "MMM yyyy", 
                       CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);

Response.Write(dt.ToString("yyyy MMM"));
Run Code Online (Sandbox Code Playgroud)

但在输出中我有0001 jan,为什么?

我非常感谢您在解决这个问题时能给我的任何帮助.

先感谢您.

shr*_*t18 7

您的格式字符串应为"MMMM yyyy",输入格式为"2014年6月","yyyy-MM"表示输出格式为"2014-06":

DateTime dt = new DateTime();
bool parseResult = DateTime.TryParseExact(Input.ToString(), "MMMM yyyy", 
                   CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);

if(parseResult)
{
 Response.Write(dt.ToString("yyyy-MM"));
}
else
{
 //Error message about parse fail perhaps?
}
Run Code Online (Sandbox Code Playgroud)
  • "MMM"适用于Jun或Sep等3个字母的版本.
  • "MMMM"用于完整的月份名称,例如6月或9月
  • "MM"用于数字表示,例如06或09.

  • 在尝试使用`dt`作为日期对象之前,你不会检查`TryParse`是否成功? (2认同)

Sof*_*tor 5

您的日期格式字符串在几个地方都是错误的.尝试这样的事情:

string Input = "june 2014";
DateTime dt;
DateTime.TryParseExact(Input.ToString(), "MMMM yyyy",
                       CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);
Console.WriteLine(dt.ToString("yyyy-MM"));
Run Code Online (Sandbox Code Playgroud)

  • 在尝试使用`dt`作为日期对象之前,你不会检查`TryParse`是否成功? (2认同)