可能是愚蠢的问题,但我以前没有和文化打交道过。日期的资产需要是:
mmm dd "de" yyyy ("de"不带引号)。
juno 1 de 2015
我现在的情况:
CultureInfo ci = new CultureInfo("es-ES", false);
string date = DateTime.Now.ToString("MMMM dd REPLACE yyyy", ci).Replace("REPLACE", "de");
我想知道是否有一种"更编程正确"的方式来做到这一点,我不知道而不是做string.Replace
只需用单引号、双引号引用文字部分,或者用反斜杠转义每个字符:
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 de yyyy", ci);
请注意,在第二个选项中,我们需要转义字符串字面值中的"
,而在第三个选项中,我使用逐字字符串字面值来避免转义反斜杠。使用单引号是最简单的:)
阅读自定义日期和时间格式字符串,了解更多关于您可以做什么的一般细节。
可以用反斜杠转义:
string date = DateTime.Now.ToString(@"MMMM dd de yyyy", ci)
查看文档
注意@
,它防止反斜杠被解析为字符串转义。
如果我理解清楚的话,您可以用单引号转义de
部分,如;
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 de yyyy", ci);
我更喜欢使用单引号,因为"
和可能会混淆。
更多信息请访问;
- 自定义日期和时间格式字符串