为葡萄牙葡萄牙

问题描述:

我的当前日期时间格式C#DateTime格式是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

+1

确切需要的不是[转换日期时间到指定格式]明确 –

+1

可能的复制(http://*.com/questions/9371658/convert-datetime-to-a-指定格式) –

+0

重复? http://*.com/questions/15724183/how-to-put-unprocessed-escaped-words-inside-string-format – MarkO

只是escape\d否则它将被识别为day of the month

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

Sample

+1

非常感谢你 –

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

dde有特殊的意义,所以你必须使用反斜线那封信。

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

DateTime s被格式化为custom format specifiers

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

有逸出字符两种方法:

  • \字符可以用于逃生单个字符
  • '"字符可以是使用逃脱字符的字符串。

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

如:

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