Pergunta

De acordo com a MSDN em DateTime.ToString ToString ( "s" ) deve sempre retornar string no formato do estilo classificáveis ??XML Schema formatação, por exemplo: 2008-10-01T17: 04: 32,0 milhões

Em refletor Eu vim a este padrão dentro DateTimeFormatInfo.

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

O DateTime.ToString ( "s") return sempre uma string neste formato?
Independentemente da Cultura, Region, ...


Sim, é verdade
Código de teste 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));
    }
}
Foi útil?

Solução

Sim, é verdade. Como já foi dito que só contém valores numéricos e strings literais (por exemplo, 'T' e ':')., Nada do que é alterada por configurações de região ou cultura

Outras dicas

Sim. Quebrar esse padrão baixo , é apenas propriedades numéricas, não há nenhuma referência a qualquer coisa como mês ou dia nomes lá.

aaaa - 4 dígitos data
MM - dois meses dígitos, com zero à esquerda
dd - dois dias dígitos, com zero à esquerda
T - um literal T
HH - 2 dígitos da hora, com os principais formato de zero, 24 horas
mm - 2 minutos dígitos, com zero à esquerda
ss - 2 dígitos segundo, com zero à esquerda

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top