将Datetime转换为所需的String格式

时间:2014-03-18 07:09:59

标签: c# .net winforms datetime

我已经到处寻找这个解决方案,但找不到它

DateTime now=DateTime.Now;

我想将其转换为

18th March

目前我正在使用

MessageBox.Show(DateTime.Now.ToString("d MMMM"));

显示

3月18日。

1表示应显示第1个

第2-2

3-3rd

4-4th

任何解决方案?

2 个答案:

答案 0 :(得分:3)

你可能必须使用这样的函数,

  static string ToEnglishOrdinal (int number) {
      if ((number % 100 < 10) || (number % 100 >= 14)) {
        switch (number % 10) {
          case 1: {
            return number.ToString () + "st";
          }

          case 2: {
            return number.ToString () + "nd";
          }

          case 3: {
            return number.ToString () + "rd";
          }
        }
      }

      return number.ToString () + "th";
    }

答案 1 :(得分:2)

这样的事情会对你有所帮助:(未经考验可以提出想法)

DateTime dt = DateTime.Now;
int day = dt.Date.Day % 10;

MessageBox.Show(dt.ToString("d" + ((day == 1) ? “st” : (day == 2) ? “nd” : (day == 3) ? “rd” : (day == 4) ? “th” : “th”) + "MMMM"));