C# 将字符串yyyyMM转换为Mon-yyyy

C# 将字符串yyyyMM转换为Mon-yyyy,c#,datetime,C#,Datetime,我需要将yyyyMM格式的字符串转换为Mon-yyyy格式。例如,201606应该返回Jun-2016。 我试过的是 string strVal = "201606"; string monthYear = DateTime.Parse(strVal.ToString("MMM-yyyy")).ToString(); 他不工作了。请帮助。试试这个: string strVal = "201606"; string monthYear = DateTime.ParseExact(strVal,

我需要将yyyyMM格式的字符串转换为Mon-yyyy格式。例如,
201606
应该返回
Jun-2016
。 我试过的是

string strVal = "201606";
string monthYear = DateTime.Parse(strVal.ToString("MMM-yyyy")).ToString();
他不工作了。请帮助。

试试这个:

string strVal = "201606";
string monthYear = DateTime.ParseExact(strVal, "yyyyMM", CultureInfo.InvariantCulture).ToString("MMM-yyyy");

首先,您必须将字符串转换为
DateTime
,然后再转换回
string
您必须先使用
DateTime。ParseExact

DateTime yearMonth = DateTime.ParseExact("201606", "yyyyMM", null);
string monthYear = yearMonth.ToString("MMM-yyyy");
使用ParseExact

string strVal = "201606";
string monthYear = DateTime.ParseExact(strVal, "yyyyMM", CultureInfo.InvariantCulture).ToString("MMM-yyyy");
“201606”
不是标准日期格式,因此您需要做两件事:

  • 用于获取正确的
    DateTime
  • 在DateTime上调用
    ToString(“MMM yyyy”)
    以获取新的格式化日期:

    string strVal = "201606";
    string monthYear = DateTime.ParseExact(strVal, "yyyyMM", CultureInfo.CurrentCulture).ToString("MMM-yyyy");
    Console.WriteLine(monthYear);
    

  • “不起作用”意味着什么?错误?无效结果?您认为strVal.ToString(“MMM yyyy”)的作用是什么?你看过了吗?