Existe-t-il une méthode intégrée dans .NET 3.5 pour convertir une période ISO 8601 en .NET TimeSpan/ticks/millisecondes?Conversion d'une période au format ISO 8601 en ticks/millisecondes
Répondre
Malheureusement, rien n'est directement intégré dans .NET.
Et il n'y a pas TimeSpan.ParseExact
avant .NET 4 qui pourrait être utilisé si les composants de la chaîne sont connus.
marqué répondu pour être le premier à répondre. – yas4891
Même s'il n'y a rien directement dans le framework .Net, j'ai trouvé que Joda.org a mis en œuvre une telle chose et je me suis souvenu que Jon a fait un port à .Net appelé noda-time. Une première vue dans this source code montre qu'il a implémenté quelque chose ici à cet effet. Peut-être devriez-vous faire d'autres recherches dans ce projet.
Merci pour ce lien. travail assez impressionnant fait là – yas4891
Il n'y a pas de manière intégrée. Pour compliquer davantage les choses, ISO 8601 durations est en fait totalement incompatible avec TimeSpan ou tout autre moyen de mesurer le temps. La raison en est que les durées ISO 8601 peuvent contenir des années et des mois. Le problème avec cela est qu'une année peut avoir 365 ou 366 jours et un mois de 28 à 31 jours. Joda-Time solves this problème en reliant ces périodes inexactes à un instant dans le temps.
Sauf si vous êtes chanceux et les périodes arrive d'utiliser le P [AAAA] - [MM] - [JJ] T [hh]: [mm]: format [ss] car alors vous venez:
string period = "P0003-06-04T12:30:05";
TimeSpan span = new TimeSpan(DateTime.Parse(period.Remove(0,1)).Ticks);
Pour ma tâche spécifique cela devrait normalement être quelque chose comme "PT1S" ou "PT0.05999999999S", donc l'analyse n'est pas un vrai problème. Je voulais juste avoir une bonne solution pour cela. Merci pour votre réponse! – yas4891
XmlConvert.ToTimeSpan
semble avoir été autour pour toujours et fait exactement ce que vous voulez.
- 1. Invite Windows: ISO 8601 date?
- 2. Date ("date format 8601")?
- 3. Comment puis-je convertir une valeur de date au format ISO 8601 en objet de date en JavaScript?
- 4. Conversion de carte au format MapInfo
- 5. Conversion du format XML au format JSON
- 6. Conversion tableau au format Drupal
- 7. Conversion Python en ISO-8859-5
- 8. Comment analyser une date au format ISO dans Flex (AS3)?
- 9. Conversion format par candidat au format OpenSTV BLT
- 10. Conversion de charsets ISO/Windows en UTF-8 en Javascript
- 11. Conversion de documents/pages générés en JavaScript au format PDF
- 12. Conversion d'une chaîne au format ddMMyyyy en DateTime
- 13. conversion de date en csv au format mysql db
- 14. Quelle est la différence entre les formats de date ISO 8601 et RFC 3339?
- 15. Conversion des IDOC au format XML au niveau SAP
- 16. VB.net ISo DateFormat
- 17. Conversion Xml UTF-8 à ISO-8859-9 en C#
- 18. Comment obtenir la date actuelle au format ISO en utilisant Perl?
- 19. Comment puis-je convertir une durée ISO 8601 à l'aide de XSLT 1.0 secondes
- 20. PHP Convertir la date ISO en un format plus lisible?
- 21. Conversion de format de date en SQL
- 22. PHP DateTime :: createFromFormat ne pas analyser le temps de date ISO 8601
- 23. Numéro de semaine erroné dans la norme ISO 8601 date dans SQL Server Analysis Services
- 24. Dans LINQ to SQL, Comment renvoyer le datetime dans la chaîne ISO 8601, la chaîne IETF ou l'horodatage?
- 25. Conversion de format de fichier en format TIFF. Quelques problemes?
- 26. Comment changer une date en changeant la période AM/PM au format 12h?
- 27. Conversion du format datetime
- 28. Conversion du format hexadécimal en chaînes
- 29. Conversion de XDate au format de date normal?
- 30. Conversion chaîne de date au format DateTime vb.net
@Timwi: Je suis un grand fan de brièveté. Cependant, je suis aussi une personne naturellement amicale. Alors, qu'est-ce qui ne va pas de souhaiter à tous une bonne journée de travail? – yas4891
car le style de SO (et des autres sites réseau Stack Exchange) est de ne pas le faire. Pour la discussion, utilisez http://meta.stackoverflow.com. – Richard
En l'enlevant, je n'indique pas qu'il n'est pas amical. C'est juste que ça n'apporte vraiment rien à la question. Rappelez-vous que ce n'est pas un forum de discussion avec des messages individualisés. – Timwi