Y at-il une API pour convertir le format « YYYYMMDDHHMMSS.UUUUUU-TZO » à C # DateTime?
-
06-09-2019 - |
Question
Exemple: "20080807144334,410187-180" (-180 signifie GMT moins trois heures de Rio de Janeiro dans ce cas.).
Ce format de chaîne est retournée lorsque je fais une recherche fois la création de fichiers / changement / accès via WMI (non totalement travail, voir ici ). Je suppose que je pourrais l'analyser la façon idiote, l'extraction de l'année, mois, etc. à partir des positions de chaîne. Mais je voudrais ne pas réinventer la roue. Les constructeurs de System.DateTime ne gèrent pas ce format. Dois-je continuer et de le faire de la façon idiote ou est-il quelque chose de mieux?
La solution
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 vraiment comprendre comment l'obtenir pour lire un fuseau horaire dans tout format).
Le reste ressemblerait à ceci:
DateTime.ParseExact("20080807144334.410187", "yyyyMMddHHmmss.ffffff", System.Globalization.CultureInfo.InvariantCulture)
Autres conseils
Vous devriez jeter un oeil à la méthode DateTime.TryParseExact. Il vous laisse passer dans le format que vous convertissez à partir.
http://msdn.microsoft.com/en -nous / bibliothèque / system.datetime.tryparseexact.aspx