Получение дневного суффикса, используя DateTime. ToString ()

74
задан Craig Bovis 12 January 2010 в 17:10
поделиться

3 ответа

в качестве ссылки, который я всегда использую / см. 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"
59
ответ дан 24 November 2019 в 11:44
поделиться

Для тех, кто рад использовать внешние зависимости (в этом случае фантастическое Humanizr .NET ), это столь же просто как

dateVar.Day.Ordinalize(); \\ 1st, 4th etc depending on the value of dateVar

0
ответ дан 24 November 2019 в 11:44
поделиться

В документации MSDN нет ссылки на культуру, которая может преобразовать это 17 на 17. Таким образом, вы должны сделать это вручную с помощью кода-позади. Построить один ... Вы можете построить функцию, которая делает это.

public string CustomToString(this DateTime date)
    {
        string dateAsString = string.empty;
        <here wright your code to convert 17 to 17th>
        return dateAsString;
    }
-2
ответ дан 24 November 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: