2009-06-29 7 views
5

Selon MSDN on DateTime.ToString ToString ("s") doit toujours revenir chaîne dans le format de la mise en forme de style XML Schema sortable, par exemple: 2008-10-01T17: 04: 32,0000000Est-ce que DateTime.ToString ("s") renvoie toujours le même format?

réflecteur Je suis venu à ce modèle à l'intérieur DateTimeFormatInfo .

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

Est-ce que DateTime.ToString ("s") renvoie toujours une chaîne dans ce format?
Quelle que soit la culture, Région, ...


Oui, il ne
code pour vérifier 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)); 
    } 
} 
+1

Comment cette question n'est pas encore fermée? – Irwin

Répondre

14

Oui il le fait. Comme d'autres l'ont dit, il ne contient que des valeurs numériques et des littéraux de chaîne (par exemple 'T' et ':'), rien qui soit modifié par les paramètres de région ou de culture.

11

Oui. Breaking that pattern down, ce n'est que des propriétés numériques, il n'y a aucune référence à quelque chose comme mois ou jour noms là-bas.

yyyy-4 chiffres Date
MM-2 chiffres mois, avec zéro
dd-2 chiffres du jour, avec zéro
T - T littéral
HH - heure à 2 chiffres, avec zéro de début, format 24 heures
mm - minute à 2 chiffres, avec zéro initial
ss - seconde à 2 chiffres, avec zéro initial

Questions connexes