J'appelle DateTime.parseexact code> avec une chaîne de format personnalisée le long des lignes de
"mm / jays / aaaa h: mmt" code>. Cette chaîne gère des années à quatre chiffres mais pas des années à deux chiffres. Existe-t-il un moyen de gérer les deux cas dans un seul appel parseexact? J'ai essayé
"mm / jj / yy h: mmt" code> et gère seulement le boîtier à deux chiffres. P>
4 Réponses :
Vous pouvez toujours utiliser Surcharge appropriée :
var date = DateTime.ParseExact(dateString, new[] { "MM/dd/yyy h:mmt", "MM/dd/yy h:mmt" }, new CultureInfo("en-US"), DateTimeStyles.None);
Vous pouvez transmettre un tableau de chaînes de format pour le deuxième paramètre de cette surcharge de parseexact code>
- cela inclurait à la fois les variantes de 2 et 4 ans.
DateTime.ParseExact(myDateTime, new []{"MM/dd/yy h:mmt", "MM/dd/yyyy h:mmt"}, CultureInfo.InvariantCulture, DateTimeStyles.None)
Merci; c'est bien. Les formats sont-ils essayés dans l'ordre qu'ils apparaissent dans le tableau? Serait-il préférable de mettre le format à quatre chiffres d'abord?
@Williamgross - La documentation ne précise pas, mais les chances sont que oui, ils sont essayés dans l'ordre. Il ne serait préférable que de mettre le format à quatre chiffres d'abord si la plupart des chaînes attendues à l'analyse auront des années à quatre chiffres.
Appeler la surcharge de pour le troisième argument, passe pour le quatrième argument, 0 équivalent à voir le Documentation de la bibliothèque MSDN . P > p> DateTime.parseexact code> qui accepte un tableau de formats possibles:
null code> ou
denttimeformatinfo.currentInfo code> si votre chaîne de date est localisée pour la culture actuelle de l'utilisateur; Pass
denttitimeformatinfo.invariantinfo code> Si votre chaîne de date est toujours au format américain. p>
DateTimeMestyles.none code>. < / p>
Utilisez le surchargé DateTime.parseexact qui prend une gamme de chaînes de formats.
msdn: p>