将日期格式更改为 ddth mmm,yyyy

Change Date Format to ddth mmm,yyyy

我正在我的网络表单上打印一些日期。 目前我的日期格式是 dd:mmm:yyyy hh:mm

如何将日期格式更改为 ddth mmm,yyyy for 示例 2016 年 5 月 17 日 hh:mm

这是我的代码:

 lastlogin = DateTime.Parse(dt_LastLoginDetail.Rows[0]["login_time"].ToString());
 lastlogindate = "Last Login Date: " + lastlogin.ToString("dd-MMM-yyy hh:mm tt");

试试这个:

lastlogin = DateTime.Parse(dt_LastLoginDetail.Rows[0]["login_time"].ToString());
string suffix;
switch (lastlogin.Day) {
    case 1:
    case 21:
    case 31:
        suffix = "st";
        break;
    case 2:
    case 22:
        suffix = "nd";
        break;
    case 3:
    case 23:
        suffix = "rd";
        break;
    default:
        suffix = "th";
        break;
}
lastlogindate = "Last Login Date: " + lastlogin.ToString("dd\"" + suffix + "\" MMM, yyyy hh:mm");

.Net 没有内置方法检索'st'、'nd'等,所以你只需要在代码中确定。

据我所知,没有标准的日期格式可以为您生成 "st"、"nd"、"rd" 或 "th" 后缀。您可以使用以下内容:

DateTime dt = DateTime.Now;

string suffix = "th";
if (dt.Day < 10 || dt.Day > 20)
{
    switch (dt.Day % 10)
    {
        case 1: 
            suffix = "st";
            break;
        case 2:
            suffix = "nd";
            break;
        case 3:
            suffix = "rd";
            break;
        default:
            suffix = "th";
            break;
    }
}

string format = $"dd\"{suffix}\" MMM yyyy hh:mm";
string s = dt.ToString(format);

任何包含一个以上字符的日期和时间格式字符串,包括白色 space,都被解释为自定义日期和时间格式字符串;欲了解更多信息:

https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

显示 2016 年 5 月 17 日

DateTime.Now.ToString("dd'th ' MMM,yyyy");