DateTime.ToString()无法按预期使用斜杠作为日期分隔符

Sri*_*idu 7 c# datetime c#-4.0

我想将日期时间转换为"MM/dd/yyyy",当我转换为此格式时,日期变得像"xx-xx-xxxx".我写的代码就像

  var format = "MM/dd/yyyy HH:mm";
  DateTime dt = DateTime.Now;
  var dateString = dt.toString(format); // the value i am getting is 05-28-2014 12:47 but i require the 'dateString' value to be `05/28/2014 12:53`. 
Run Code Online (Sandbox Code Playgroud)

这有什么问题.

Tim*_*ter 23

你的文化文化的日期分隔符似乎是-你得到它的原因.你必须指定InvariantCulture:

string dateString = dt.toString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);  
Run Code Online (Sandbox Code Playgroud)

请参阅:"/"自定义格式说明符

"/"自定义格式说明符表示日期分隔符,用于区分年,月和日.从当前或指定区域性的DateTimeFormatInfo.DateSeparator属性中检索适当的本地化日期分隔符.

另一种方式是为了躲避/\:

string dateString = dt.toString(@"MM\/dd\/yyyy HH\:mm");  
Run Code Online (Sandbox Code Playgroud)

但在我看来,如果你已经知道/"当前文化的日期分隔符" 的特殊含义,那么使用正确的CultureInfo(或InvariantCulture)代替它会更好(就可读性而言).