添加 "de" 到 es-ES CultureInfo DateTime C#

Adding "de" to es-ES CultureInfo DateTime C#

可能是个愚蠢的问题,但我之前并没有与 Culture 一起工作过。日期的资产需要是:

MMMM dd "de" yyyy(w/o 在 "de" 上引用)。

2015 年 6 月 1 日

我现在拥有的:

CultureInfo ci = new CultureInfo("es-ES", false);
string date = DateTime.Now.ToString("MMMM dd REPLACE yyyy", ci).Replace("REPLACE", "de");

我想知道是否有我不知道的 "more programatically correct" 方法而不是 string.Replace

如果我理解清楚,你可以用单引号转义你的 de 部分,例如;

string date = DateTime.Now.ToString("MMMM dd 'de' yyyy", ci);

或者用双引号;

string date = DateTime.Now.ToString("MMMM dd \"de\" yyyy", ci);

或使用转义字符作为 verbatim string literal;

string date = DateTime.Now.ToString(@"MMMM dd \d\e yyyy", ci);

我几乎更喜欢使用单引号,因为 "\ 可能会造成混淆。

更多信息,请访问;

您可以使用反斜杠转义字符:

string date = DateTime.Now.ToString(@"MMMM dd \d\e yyyy", ci)

参见documentation

注意 @,它可以防止反斜杠被解析为字符串文字转义。

只需用单引号、双引号引用文字部分,或用反斜杠转义每个字符:

string date = DateTime.Now.ToString("MMMM dd 'de' yyyy", ci);
string date = DateTime.Now.ToString("MMMM dd \"de\" yyyy", ci);
string date = DateTime.Now.ToString(@"MMMM dd \d\e yyyy", ci);

请注意,在第二个选项中,我们需要在字符串文字中转义 ",而在第三个选项中,我使用逐字字符串文字来避免转义反斜杠。使用单引号是最简单的:)

阅读 custom date and time format strings 了解有关您可以做什么的更多详细信息。