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>