Tut DateTime.ToString("s") return immer das gleiche format?
Laut MSDN auf DateTime.ToString ToString("s") sollte immer eine Zeichenkette zurückgeben, die in das format des sortierbar XML-Schema-Stil formatieren, z.B.: 2008-10-01T17:04:32.0000000
In Reflektor kam ich zu diesem Muster innen DateTimeFormatInfo.
public string SortableDateTimePattern
{
get
{
return "yyyy'-'MM'-'dd'T'HH':'mm':'ss";
}
}
Tut DateTime.ToString("s") return immer eine Zeichenkette in diesem format?
Unabhängig von der Kultur, Region, ...
Ja, es tut
Code um zu testen, ob
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));
}
}
- wie ist diese Frage noch nicht geschlossen ist?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es funktioniert. Wie andere gesagt haben, es enthält nur numerische Werte und string-Literale (z.B. 'T' und ':'), nichts verändert nach region oder Kultur Einstellungen.
Yep. Brechen das Muster unten, es sind nur numerische Eigenschaften, gibt es keinen Hinweis auf so etwas wie Monat oder Tag Namen dort.
JJJJ - 4-stellige Datum
MM - 2-stelliger Monat, mit führender null
dd - 2-stelliger Tag, mit führender null
T - literal 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