2017-04-19 150 views
2

我的當前日期時間格式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://stackoverflow.com/questions/9371658/convert-datetime-to-a-指定格式) –

+0

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

回答

2

只是escape\d否則它將被識別爲day of the month

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

Sample

+1

非常感謝你 –

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

dde有特殊的意義,所以你必須使用反斜線那封信。

這涉及所有可能與已經預定義的日期或時間格式說明符衝突的字母。

1

DateTime s被格式化爲custom format specifiers

通過轉義字符,您可以確保字符未被格式化爲日期/時間的一部分。

有逸出字符兩種方法:

  • \字符可以用於逃生單個字符
  • '"字符可以是使用逃脫字符的字符串。

後者可能更容易使用,因爲您可以將任何單詞放在格式字符串中並忘記它。

如:

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