Pregunta

Según MSDN en DateTime.ToString ToString ( "s" ) siempre debe devolver cadena en el formato del formato de estilo de esquema XML se puede ordenar, por ejemplo: 2008-10-01T17: 04: 32.0000000

En reflector llegué a este patrón dentro DateTimeFormatInfo.

public string SortableDateTimePattern
{
      get
      {
            return "yyyy'-'MM'-'dd'T'HH':'mm':'ss";
      }
}

¿Tiene DateTime.ToString retorno ( "s") siempre es una cadena en este formato?
Independientemente de la Cultura, Región, ...


Sí lo hace
El código para comprobar que

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));
    }
}
¿Fue útil?

Solución

Sí lo hace. Como otros han dicho que sólo contiene valores numéricos y cadenas literales (por ejemplo, 'T' y ':')., Nada de lo que se ve alterado por la configuración de región o cultura

Otros consejos

Sí. romper ese patrón abajo , es sólo propiedades numéricas, no hay ninguna referencia a nada como el mes o el día nombres en ese país.

aaaa - 4 dígitos fecha
MM - mes 2 dígitos, con ceros a la izquierda
dd - día 2 dígitos, con ceros a la izquierda
T - un literal T
HH - 2 dígitos para la hora, con el principal formato de
cero 24 horas mm - 2 minutos dígitos, con ceros a la izquierda
ss - 2 segundos dígitos, con ceros a la izquierda

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top