根据MSDN on DateTime.ToString,ToString("s")应始终以可排序的XML模式格式返回字符串,例如:2008-10-01T17:04:32.0000000。
在Reflector中,我找到了DateTimeFormatInfo中的此模式。
在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));
}
}