Est-ce que DateTime.ToString ( « s ») retourne toujours même format?
-
21-08-2019 - |
Question
Dans réflecteur je suis à l'intérieur de ce modèle DateTimeFormatInfo.
public string SortableDateTimePattern
{
get
{
return "yyyy'-'MM'-'dd'T'HH':'mm':'ss";
}
}
Est-ce que DateTime.ToString ( "s") reviennent toujours une chaîne dans ce format?
Quelle que soit la culture, Région, ...
Oui, il fait
Code pour tester 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));
}
}
La solution
Oui, il le fait. Comme d'autres l'ont dit qu'il ne contient que des valeurs numériques et littéraux de chaîne (par exemple « T » et « : »)., Rien qui est modifié par les paramètres de région ou culture
Autres conseils
Yep. Briser ce modèle vers le bas , il n'y a que des propriétés numériques, il n'y a aucune référence à quoi que ce soit comme le mois ou le jour noms là-dedans.
yyyy - 4 chiffres Date
MM - 2 mois chiffres, avec zéro
dd - 2 chiffres du jour, avec zéro
T - un littéral T
HH - 2 chiffres heure, avec zéro, format 24 heures
mm - 2 chiffres minute, avec zéro
ss - 2 chiffres seconde, avec zéro