将日期时间转换为所需的字符串格式

本文关键字:字符串 格式 日期 时间 转换 | 更新日期: 2023-09-27 17:50:40

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

DateTime now=DateTime.Now;

我想把它转换成

18th March

当前我正在使用

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

显示

3月18日。

对于1,它应该显示第一个

2-2nd

3-3rd

4-4th

解决方案吗?

将日期时间转换为所需的字符串格式

您可能需要使用这样的函数,

  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";
    }

像这样的东西会帮助你:(未经测试的想法)

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"));