如何将datetime字段转换为字符串,如2011年2月1日?

kri*_*han 1 c# asp.net datetime

如何将日期时间字段转换为1st Feb 2011C#格式的字符串?dojdatetimesql server中的字段.

string DateOfJoin = dt.Rows[0]["DOJ"].ToString();//2011-02-01 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

Son*_*nül 5

首先,2/1/2011可以是2月1日或1月2日,而不是 1月1日.

其次,让我们解析你stringDateTime.

DateTime dt = DateTime.ParseExact(dt.Rows[0]["DOJ"].ToString(),
                                  "M/d/yyyy hh:mm:ss tt",
                                   CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

或者你可以明确地把它投射到 DateTime

DateTime dt = (DateTime)dt.Rows[0]["DOJ"];
Run Code Online (Sandbox Code Playgroud)

第三,.NET在BCL中没有内置方式来生成日后缀.但拉兹洛 写的方法对我来说似乎很有用;

static string GetDaySuffix(int day)
{
    switch (day)
    {
        case 1:
        case 21:
        case 31:
            return "st";
        case 2:
        case 22:
            return "nd";
        case 3:
        case 23:
            return "rd";
        default:
            return "th";
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以这样的方法;

string DateOfJoin = String.Format("{0}{1} {2}",
                                  dt.Day,
                                  GetDaySuffix(dt.Day),
                                  dt.ToString("MMM yyyy", CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)

产生

在此输入图像描述