2009-05-29 6 views
2

Exemple: « 20080807144334,410187-180 » (-180 signifie GMT moins trois heures de Rio de Janeiro dans ce cas..)Y a-t-il une API à convertir du format "YYYYMMDDHHMMSS.UUUUUU-TZO" en C# DateTime?

Ce format de chaîne est retournée lorsque je fais une recherche de création/modification/temps d'accès via WMI (c'est ne fonctionne pas totalement, voir here). Je suppose que je pourrais l'analyser de manière idiote, extraire l'année, le mois, etc. des positions de cordes. Mais je ne voudrais pas réinventer la roue. Les constructeurs de System.DateTime ne gèrent pas ce format. Devrais-je continuer et faire le chemin idiot ou y a-t-il quelque chose de mieux?

Répondre

8

Vous devriez pouvoir utiliser DateTime.ParseExact ou .TryParseExact pour lui donner le format spécifique à utiliser lors de l'analyse. Cependant, je ne pense pas que vous pouvez l'obtenir pour lire votre fuseau horaire dans ce format (bien que je ne peux pas réellement comprendre comment l'obtenir pour lire un fuseau horaire dans n'importe quel format).

Le reste ressemblerait à ceci:

DateTime.ParseExact("20080807144334.410187", "yyyyMMddHHmmss.ffffff", System.Globalization.CultureInfo.InvariantCulture) 
+0

Merci! Ca marche et ça ne réinvente pas la roue, mais par Zeus c'est moche. Voici: retVal.CreationDate = DateTime.ParseExact (((string) queryObj ["CreationDate"]). Sous-chaîne (0,21), "yyyyMMddHHmmss.ffffff", System.Globalization.CultureInfo.InvariantCulture); – JCCyC

Questions connexes