в качестве ссылки, который я всегда использую / см. Stevex String. Форматирование И там, кажется, не кажется никакой «-й» в любом из доступных переменных, но вы могли бы легко построить строку с
string.Format("{0:dddd dd}{1} {0:MMMM yyyy}", DateTime.Now, (?));
, вам придется поставить «st» на 1, «ND» для 2, «RD» «За 3, а« гораздо »для всех остальных и могут быть включены в обстановку«?: »утверждение.
var now = DateTime.Now;
(now.Day % 10 == 1 && now.Day != 11) ? "st"
: (now.Day % 10 == 2 && now.Day != 12) ? "nd"
: (now.Day % 10 == 3 && now.Day != 13) ? "rd"
: "th"
Для тех, кто рад использовать внешние зависимости (в этом случае фантастическое Humanizr .NET ), это столь же просто как
dateVar.Day.Ordinalize(); \\ 1st, 4th etc depending on the value of dateVar
В документации MSDN нет ссылки на культуру, которая может преобразовать это 17 на 17. Таким образом, вы должны сделать это вручную с помощью кода-позади. Построить один ... Вы можете построить функцию, которая делает это.
public string CustomToString(this DateTime date)
{
string dateAsString = string.empty;
<here wright your code to convert 17 to 17th>
return dateAsString;
}