В соответствии с MSDN для DateTime.ToString ToString ("s") всегда должна возвращать строку в формате форматируемого стиля XML-схемы, например: 2008-10-01T17: 04: 32.0000000
В Reflector я пришел к этому шаблону внутри 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));
}
}