2009-06-29 5 views
5

Nach MSDN on DateTime.ToString ToString ("s") sollte immer String im Format der sortierbar XML-Schema-Formatierung zurückzukehren, zum Beispiel: 2008-10-01T17: 04: 32,0000000Gibt DateTime.ToString ("s") immer dasselbe Format zurück?

In Reflector kam ich zu diesem Muster innerhalb Datetime .

Gibt DateTime.ToString ("s") immer eine Zeichenfolge in diesem Format zurück?
Unabhängig von der Kultur, Region, ...


Ja, es ist
-Code zu testen, dass

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

Wie ist diese Frage noch nicht geschlossen? – Irwin

Antwort

14

Ja, es funktioniert. Wie andere gesagt haben, enthält es nur numerische Werte und String-Literale (z.B. 'T' und ':'), nichts, was durch Regions- oder Kultureinstellungen verändert wird.

11

Ja. Breaking that pattern down, es ist nur numerische Eigenschaften, es gibt keinen Verweis auf irgendetwas wie Monat oder Tag Namen drin.

yyyy-4 stelliges Datum
MM-2 stelligen Monat mit führenden Null
dd-2 stelligen Tag, mit führenden Null
T - einem wörtlichen T
HH - 2-stellige Stunde, mit führender Null, 24-Stunden-Format
mm - 2-stellige Minute, mit führender Null
ss - 2-stellige Sekunde, mit führender Null

Verwandte Themen