DateTime ToString(“dd / MM / yyyy”)返回dd.MM.yyyy

时间:2013-03-07 14:05:29

标签: c# asp.net datetime

我也尝试屏蔽格式化字符串中的'/'符号,但它不太起作用。我的最终目标是使用'/'符号作为分隔符来获取日期。我想我可以使用DateTime.ToString(“dd/MM/yyyy”).Replace('.', '/'),但感觉有点过分。

4 个答案:

答案 0 :(得分:37)

日期/时间格式字符串中的/字符代表“格式提供程序的日期分隔符”。由于您未提供格式提供程序Thread.CurrentCulture,因此当前文化使用.作为日期分隔符。

如果您想使用 literal 斜杠,请将其放在单引号内:

dateTime.ToString("dd'/'MM'/'yyyy");

或者,您可以指定日期分隔符为/的格式提供程序:

dateTime.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

以上所有内容均为documented on MSDN

<强> See the difference in a live example

答案 1 :(得分:2)

string s = dt.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)

答案 2 :(得分:2)

这是因为ToString works by default的方式,符合当前的文化:

  

此方法使用从当前导出的格式信息   培养

所以,重写:

string date = dt.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)

答案 3 :(得分:1)

这有用(注意InvariantCulture):

DateTime.Now.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture)

如果未指定CultureInfo,则会使用CurrentCulture。如果这是一种不在日期中使用斜杠作为分隔符的文化,则它将被实际的文化日期分隔符替换。