2009-06-29 87 views
5

根據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

回答

14

是它。正如其他人所說,它只包含數值和字符串文字(如'T'和':'),沒有任何地區或文化設置改變。

11

沒錯。 Breaking that pattern down,這只是數值屬性,還有在那裏像一個月或一天沒有任何參考。

YYYY - 4位日期
MM - 2位的月份,前導零
DD - 2位天,與領先零
Ť - 字面Ť
HH - 2位小時,帶前導零,24小時制
mm - 2位分鐘,帶前導零
ss - 2位數秒,帶前導零

相關問題