从msdn看来,我可以使用Datetime.ToString()
方法创建自己的格式,例如使用M、m、d、y
等。但是当我尝试使用其中一个时,它并没有按照预期工作,下面是问题的片段。
2015年7月29日
,但实际收到的是2015年7月29日
,为什么?看起来你的 DateSeparator
和你的 CurrentCulture
是 -
,这就是为什么 /
字符会被替换成它。
"/"
自定义格式说明符 有一个特殊的含义,即用当前区域设置或提供的区域设置日期分隔符替换我。
你有几个选择,你可以用单引号转义它(或在verbatim字符串文字中使用\/
),或者使用具有/
作为DateSeparator
的文化,如InvariantCulture
。
string s = DateTime.Now.ToString("M'/'d'/'yyyy");
string s = DateTime.Now.ToString(@"M\/d\/yyyy");
string s = DateTime.Now.ToString("M/d/yyyy", CultureInfo.InvariantCulture);
/
表示“使用相关格式提供程序的日期分隔符”。然而,'/'
或 \/
表示“包含一个字面上的斜杠”。因此,"M'/'d'/'yyyy"
或 @"M\/d\/yyyy"
都可以。 - Jeppe Stig Nielsen
/
是您系统上配置的日期分隔符,所以请使用'/'
表示斜杠。 - Frédéric Hamidi