datetime.parse et le faire fonctionner avec un format spécifique


141

J'ai un datetime qui revient d'un fichier XML au format:

20080916 11:02

un péché

aaaamm hh: ss

Comment puis-je obtenir la fonction datetime.parse pour récupérer cela? Ie l'analyser sans erreur? À votre santé

Réponses:


246
DateTime.ParseExact(input,"yyyyMMdd HH:mm",null);

en supposant que vous vouliez dire que les minutes suivaient les heures et non les secondes - votre exemple est un peu déroutant.

La documentation ParseExact détaille d'autres surcharges, au cas où vous voudriez que l'analyse soit automatiquement convertie en temps universel ou quelque chose du genre.

Comme le mentionne @ Joel Coehoorn , il y a aussi la possibilité d'utiliser TryParseExact , qui retournera une valeur booléenne indiquant le succès ou l'échec de l'opération - je suis toujours sur .Net 1.1, donc j'oublie souvent celui-ci.

Si vous avez besoin d'analyser d'autres formats, vous pouvez consulter les chaînes de format DateTime standard .


11
N'oubliez pas DateTime.TryParseExact ()
Joel Coehoorn

Aussi: le XML standard a son propre format DateTime très spécifique, et les outils .Net Xml devraient pouvoir le lire.
Joel Coehoorn

Dans ce cas, cela fonctionne bien avec le dernier paramètre comme nul mais pour quiconque trouve ce CultureInfo.InvariantCulture sinon vous pouvez avoir des problèmes si votre datetime est quelque chose comme "1823/01/01".
Todilo

@JoelCoehoorn standard XML specific DateTime format?
Kiquenet

10

Merci pour l'astuce, j'ai utilisé ceci pour obtenir ma date "20071122" analysée, j'avais besoin d'ajouter des styles de datetimestyles, je n'en ai utilisé aucun et cela a fonctionné:

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.