【问题标题】:C# Datetime format for portuguese葡萄牙语的 C# 日期时间格式
【发布时间】:2017-04-19 06:42:37
【问题描述】:

我当前的葡萄牙语日期时间格式是d MMM yyyy,结果为1 dez 2017,我希望它显示如下:1 de dez de 2017

当我像 d de MMM de yyyy 这样格式化日期时,我会得到这个 1 1e dez 1e 2017

有没有办法绕过de 转换为日期?

我的问题是有没有办法像这样格式化日期1 de dez de 2017

【问题讨论】:

  • 具体需要不清楚
  • de 是什么意思?当您传递日期时间格式时,它有一些特殊字符用于确定您要解析的内容(例如 d, M, Y, etc. )。如果您希望显示字符串de,而不是将其括在撇号' 中,请使用'de'。试试看,如果有效就回复。

标签: c# datetime-format


【解决方案1】:

只需escape\d,否则将被识别为day of the month

new DateTime(2017, 12, 1).ToString(@"d \de MMM \de yyyy", new CultureInfo("PT-pt"));

Sample

【讨论】:

    【解决方案2】:
    new DateTime(2017, 1, 1).ToString("d 'de' MMM 'de' yyyy", new CultureInfo("PT-pt"));
    

    【讨论】:

      【解决方案3】:

      DateTimes 被格式化为custom format specifiers

      您可以通过转义字符来确保字符不被格式化为日期/时间的一部分。

      转义字符有两种方法:

      • \ 字符可用于转义单个字符
      • '" 字符可用于转义字符串。

      后者可能更容易使用,因为您可以将格式字符串中的任何单词包装在其中而忘记它。

      例如:

       DateTime.Now.ToString("d 'de' MMM 'de' yyyy");
      

      【讨论】:

        【解决方案4】:

        de 中的d 具有特殊含义,因此您必须用反斜杠转义该字母。

        这涉及可能与已经预定义的日期或时间格式说明符冲突的所有字母。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-03-22
          • 2016-01-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-26
          • 1970-01-01
          相关资源
          最近更新 更多