【问题标题】:Changing DateTime format to dd/mmmm/yyyy [duplicate]将日期时间格式更改为 dd/mmmm/yyyy [重复]
【发布时间】:2016-07-05 23:02:39
【问题描述】:

我有一个6/07/2016 格式的DateTime 对象,我想将其更改为6th July 2016 格式。

如何在 C# 中做到这一点?一直在环顾四周,但似乎只能找到以这种格式将字符串转换为 DateTime 的方法。如果我已经有一个 DateTime 对象怎么办?先转成字符串?

谢谢

【问题讨论】:

  • 这取决于您在哪里使用6th July 2016,在您向用户显示日期时间的位置显示您的代码。
  • timeToRun.ToShortDateString() 返回6/07/2016
  • 是否需要日期后缀(-th、-st、-nd...),还是只能是 2016 年 7 月 6 日?
  • 不需要日期后缀。谢谢
  • DateTime 没有有格式。这只是一个值。从内存中,基础值只是一个ulong。只有当您将其转换为字符串时,您才会强加一种格式 - 就像您调用 .ToLongDateString() 时一样。

标签: c# .net datetime


【解决方案1】:

您需要在.ToString 调用中传入字符串格式,引用custom date and time format specifier page 以查看您需要哪些说明符。

string timeString = timeToRun.ToString("d MMMM yyyy")

这会给你6 July 2016,如果你想要6th而不是6,你需要一个自定义格式提供程序as specified in this question and answer

【讨论】:

    【解决方案2】:

    我认为这段代码可以帮助你。

    这个question and answer也帮我理解了

    ChangeIt(DateTime.Parse("16/07/2016"));
    
    public static string ChangeIt(DateTime date)
    {
         switch(date.Day)
         {
            case 1:
            case 21:
            case 31:
               return date.ToString("d'st' MMMM yyyy");
            case 2:
            case 22:
               return date.ToString("d'nd' MMMM yyyy");
            case 3:
            case 23:
               return date.ToString("d'rd' MMMM yyyy");
            default:
               return date.ToString("d'th' MMMM yyyy");
          }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      相关资源
      最近更新 更多