为什么DateTime.ToString("dd/MM/yyyy")给我dd-MM-yyyy?

Dis*_*ive 150 .net c# datetime

我希望将我的日期时间转换为格式为"dd/MM/yyyy"的字符串

每当我使用它进行转换时DateTime.ToString("dd/MM/yyyy"),我都会dd-MM-yyyy改为.

我必须设置某种文化信息吗?

Boj*_*lic 231

斜杠是一个日期分隔符,因此将使用当前的文化日期分隔符.

如果你想硬编码它总是使用斜杠,你可以这样做:

DateTime.ToString("dd'/'MM'/'yyyy")
Run Code Online (Sandbox Code Playgroud)

  • 您也可以使用以下格式:dateTime.ToString(@"yyyy\/ MM\/ dd") (5认同)
  • @spender - 在某些文化中他们是. (2认同)
  • 使用反斜杠转义格式字符串也可以:DateTime.Now.ToString("dd \\/MM \\/yyyy"); (2认同)

Liu*_*eng 59

CultureInfo.InvariantCulture作为DateTime的第二个参数传递,它将返回您想要的字符串,甚至是一种非常特殊的格式:

DateTime.Now.ToString("dd|MM|yyyy", CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)

将返回:28 | 02 | 2014

  • 绝对比使用转义字符更容易阅读。我不知道我的日期格式会被覆盖的整个时间让我有些震惊! (2认同)

Mik*_*ver 9

添加CultureInfo.InvariantCulture为参数:

using System.Globalization;

...

var dateTime = new DateTime(2016,8,16);
dateTime.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

将返回:

"16/08/2016"
Run Code Online (Sandbox Code Playgroud)