12

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

4

4 回答 4

41

/日期/时间格式字符串中的字符代表“格式提供程序的日期分隔符是什么”。由于您不提供格式提供程序Thread.CurrentCulture,因此在您的情况下,当前区域性.用作日期分隔符。

如果要使用文字斜线,请将其放在单引号内:

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

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

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

以上所有内容都记录在 MSDN 上

看一个活生生的例子中的区别

于 2013-03-07T14:08:20.567 回答
2
string s = dt.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)
于 2013-03-07T14:08:38.733 回答
2

这是因为ToString默认情况下的工作方式,根据当前的文化:

此方法使用从当前区域性派生的格式信息。

所以,覆盖它:

string date = dt.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)
于 2013-03-07T14:10:53.977 回答
1

这有效(注意InvariantCulture):

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

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

于 2013-03-07T14:09:38.823 回答