Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Datetime转换为所需的字符串格式_C#_.net_Winforms_Datetime - Fatal编程技术网

C# 将Datetime转换为所需的字符串格式

C# 将Datetime转换为所需的字符串格式,c#,.net,winforms,datetime,C#,.net,Winforms,Datetime,我到处寻找这个解决办法,但找不到 DateTime now=DateTime.Now; 我想把这个转换成 18th March 目前我正在使用 MessageBox.Show(DateTime.Now.ToString("d MMMM")); 显示 3月18日 对于1,它应该显示为1 2-2 3-3 4-4 有什么解决方案吗?您可能需要使用这样的函数 static string ToEnglishOrdinal (int number) { if ((number % 10

我到处寻找这个解决办法,但找不到

DateTime now=DateTime.Now;
我想把这个转换成

18th March
目前我正在使用

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

3月18日

对于1,它应该显示为1

2-2

3-3

4-4


有什么解决方案吗?

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

  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";
    }
静态字符串到英语序号(整数){
如果((数字%100<10)| |(数字%100>=14)){
开关(编号%10){
案例1:{
返回number.ToString()+“st”;
}
案例2:{
返回number.ToString()+“nd”;
}
案例3:{
返回number.ToString()+“rd”;
}
}
}
返回number.ToString()+“th”;
}

您可能必须使用这样的函数

  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";
    }
静态字符串到英语序号(整数){
如果((数字%100<10)| |(数字%100>=14)){
开关(编号%10){
案例1:{
返回number.ToString()+“st”;
}
案例2:{
返回number.ToString()+“nd”;
}
案例3:{
返回number.ToString()+“rd”;
}
}
}
返回number.ToString()+“th”;
}

类似的东西会帮助你:(未经测试,无法给出想法)


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


您需要支持哪些文化?我不相信在.NET中有任何东西可以轻松支持这样的序数。如果你只需要英语,我会使用一个简单的数组。如果你使用'st','nd','rd'和'th',不要忘记'of'关键字。3月4日获取序号是不可能的-您必须自己编写函数,以支持您想要支持的文化。您可以参考此。。您需要支持哪些文化?我不相信在.NET中有任何东西可以轻松支持这样的序数。如果你只需要英语,我会使用一个简单的数组。如果你使用'st','nd','rd'和'th',不要忘记'of'关键字。3月4日获取序号是不可能的-您必须自己编写函数,以支持您想要支持的文化。您可以参考此。。