DateTime.ToString(“s”)是否总是返回相同的格式?

DateTime.ToString(“s”)是否总是返回相同的格式?

问题描述:

根据MSDN on DateTime.ToString的ToString(“S”)应始终在排序XML架构样式格式的格式返回字符串,如:2008-10-01T17:04:32.0000000DateTime.ToString(“s”)是否总是返回相同的格式?

反光罩我来到里面的DateTimeFormatInfo这种模式。

public string SortableDateTimePattern 
{ 
     get 
     { 
      return "yyyy'-'MM'-'dd'T'HH':'mm':'ss"; 
     } 
} 

DateTime.ToString(“s”)是否总是以此格式返回字符串?
无论文化,地区,...


是它
代码来测试

var dateTime = DateTime.Now; 
var originialString = dateTime.ToString("s"); 
string testString; 

foreach (var c in System.Globalization.CultureInfo.GetCultures(CultureTypes.AllCultures)) 
{ 
    Thread.CurrentThread.CurrentUICulture = c; 
    if (c.IsNeutralCulture == false) 
    { 
     Thread.CurrentThread.CurrentCulture = c; 
    } 

    testString = dateTime.ToString("s"); 
    Console.WriteLine("{0} ", testString); 
    if (originialString != testString) 
    { 
     throw new ApplicationException(string.Format("ToString(s) is returning something different for {0} " , c)); 
    } 
} 
+1

此问题未解决如何关闭? – Irwin 2009-06-29 12:59:30

是它。正如其他人所说,它只包含数值和字符串文字(如'T'和':'),没有任何地区或文化设置改变。

没错。 Breaking that pattern down,这只是数值属性,还有在那里像一个月或一天没有任何参考。

YYYY - 4位日期
MM - 2位的月份,前导零
DD - 2位天,与领先零
Ť - 字面Ť
HH - 2位小时,带前导零,24小时制
mm - 2位分钟,带前导零
ss - 2位数秒,带前导零