【问题标题】:DateTime.ToString formattingDateTime.ToString 格式
【发布时间】:2011-07-24 08:51:55
【问题描述】:

我通过向DateTime.ToString 方法提供文化信息来显示本地化的短日期。到现在为止我正在使用

x.ToString("d", ci); // 23.12.2000

显示短日期。但现在我还想包括缩写的日期名称。我试过了

x.ToString("ddd d", ci); // pon 23

但现在d 变成了日期说明符,而不是短日期格式,所以我只得到日期名称和日期编号,而不是日期名称和短日期。

如何说服格式化程序显示日期以及预定义的文化短日期格式?

【问题讨论】:

    标签: c# datetime localization formatting


    【解决方案1】:

    看看这个解释:

    http://www.csharp-examples.net/string-format-datetime/

    也许你可以在那里找到一些例子。

    更新

    作为对评论的回应,第一个代码块中的示例 3 明确说明了如何执行此操作:

    String.Format("{0:d dd ddd dddd}", dt);  // "9 09 Sun Sunday" day
    

    谷歌搜索一个关于日期到字符串格式的问题,如果有好的例子参考,点击这个问题会更有价值。因此引用了 csharp-examples 站点。

    【讨论】:

    • 从谷歌的第一个结果复制/粘贴也不方便。不要认为它应该为此投反对票。答案不正确,或漏题。
    • 我认为你没有抓住重点,问题是如何以文化特定格式显示“ddd”后跟完整的短日期。您的代码示例没有这样做。
    • 更新后的答案给出了完全错误的答案。它甚至用一个明显错误的示例输出进行了评论。给出的链接中也没有一个例子回答了这个问题。答案既不正确,又错过了问题。
    • 我很抱歉.. 我有点错过了重点。很抱歉在这里有点触发快乐。
    • 正如其他人已经提到的那样。我知道我可以手动格式化日期,但这不是我想做的。还是谢谢。
    【解决方案2】:
    x.ToString("ddd ", ci) + x.ToString("d", ci);
    

    【讨论】:

    • 是的。这是我在这里得到一个很好的答案之前所做的。
    【解决方案3】:

    如果不出意外,你可以:x.ToString("ddd", ci) + " " + x.ToString("d", ci);

    【讨论】:

      【解决方案4】:

      怎么样:

      string.Format(ci, "{0:ddd} {0:d}", x)
      

      【讨论】:

      • 不,它不会起作用,因为它会返回,引用罗伯特“pon 23”而不是“pon 23.12.2000”
      • @Manatherin,不,这与原始问题中的示例具有完全相同的问题。我更喜欢我的方法,但 Kristoffer 的方法也简洁地解决了问题。
      • 啊,好点,看错了帖子,虽然那是他想要的,而不是他现在得到的
      • 谢谢@Kristoffer。这个比较巧妙。我不知道为什么我自己没有想到。
      【解决方案5】:

      “标准”格式化字符串通过获取CultureInfoDateTimeFormat 的等效属性来工作。在这种情况下,"d" 找到 ShortDatePattern 属性,类似于“dd.MM.yyyy”、“dd/MM/yyyy”、“MM/dd/yyyy”、“yyyy-MM-dd”和依此类推,具体取决于所讨论的语言环境。

      因此,您可以像这样在自定义模式中使用它:

      x.ToString("ddd " + ci.DateTimeFormat.ShortDatePattern, ci) // Sat 2000-12-23 on my set up, should presumably be pon 23.12.2000 on yours
      

      【讨论】:

      • +1 完全教会了我一些新东西。我会使用 String.Format。很高兴学习替代方案。
      • String.Format as per @Kristoffer Jansson's answer is a good way to skin the same cat too,虽然上面可能是处理一些更复杂的情况下你想要传递字符串的唯一方法从一个地方到另一个地方的 ToString() 调用(因此不能从 ToString() 更改为 String.Format())。是的,很高兴知道标准格式是如何工作的 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      相关资源
      最近更新 更多