C#日期格式化正在丢失斜杠分隔符

Jon*_*ury 33 c# datetime string-formatting

如果我在C#中这样做:

Console.WriteLine(DateTime.Now.ToString("ddd M/dd/yy"));
Run Code Online (Sandbox Code Playgroud)

我希望输出像这样:

Wed 6/15/11
Run Code Online (Sandbox Code Playgroud)

但它确实输出了这个:

Wed 6 15 11
Run Code Online (Sandbox Code Playgroud)

为什么斜线消失了?有没有办法防止这种情况,并以预期的格式输出日期?

Dav*_*vid 63

Console.WriteLine(DateTime.Now.ToString("ddd M/dd/yy", CultureInfo.InvariantCulture));
            Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

尝试以上

  • @Jon - 因为如果没有指定`CultureInfo`,将使用当前文化.如果这是一种不在日期中使用斜杠作为分隔符的文化(格式字符串指定日期分隔符为`/`,则由实际的文化日期分隔符替换). (11认同)
  • 这似乎有效,为什么需要CultureInfo.InvariantCulture? (3认同)

Nor*_*ert 23

你也可以用

Console.WriteLine(dateTime.ToString("ddd M'/'dd'/'yy"));
Run Code Online (Sandbox Code Playgroud)

如果您没有使用其他答案中提到的不变文化,那么这是一种可能的解决方案.


小智 10

格式参数中"/"(斜杠)的默认行为是使用当前的文化日期分隔符.

要强制使用"/"(斜杠),必须在其前面加上"\"(反斜杠).

例如:"yyyy/MM/dd"将始终显示"2015/07/02"之类的日期,与当前使用的文化无关.