Comment Convertir ISO 8601 Durée de Temps dans VB.Net?
Est-il de la bibliothèque standard méthode qui convertit une chaîne de caractères qui a durée dans la norme ISO 8601 Durée (également utilisé dans XSD pour son duration
type de format dans le .NET objet TimeSpan?
Par exemple, P0DT1H0M0S ce qui représente une durée d'une heure, est converti en New TimeSpan(0,1,0,0,0).
Inverse convertisseur n'existe pas, qui fonctionne comme suit:
Xml.XmlConvert.ToString(New TimeSpan(0,1,0,0,0))
L'expression ci-dessus sera de retour P0DT1H0M0S.
OriginalL'auteur Ralph Wiggum | 2008-09-15
Vous devez vous connecter pour publier un commentaire.
Cela vous permettra de transformer à partir de xs:durée de Temps:
Voir http://msdn.microsoft.com/en-us/library/system.xml.xmlconvert.totimespan.aspx
Cette conversion prend en charge les mois les durées et l'année durées sans problème, donc je ne pense pas qu'il mérite un downvote. TimeSpan lui-même a une limite qu'il n'est pas nativement en charge des mois et des années (les convertir à 31 ou 365 jours), mais c'est une limitation de l'OP, la destination demandée, de sorte que vous auriez à supposer que ce n'était pas un scénario qu'ils se souciaient ou qu'ils avaient une autre solution pour ces scénarios (ou ils ont découvert après la libération 😉
OriginalL'auteur user7658
Un petit mot d'avertissement - XmlConvert.ToTimeSpan() est un peu drôle quand on travaille avec des mois et des années. La plage de Temps de classe n'a pas de mois ou de l'année, les membres, probablement parce que leur longueur varie. Cependant, ToTimeSpan() sera heureux d'accepter une durée de chaîne avec le mois ou l'année de valeurs et deviner à une durée, au lieu de lancer une exception. Observer:
P11M
=> 330 jours, maisP12M
=> 365 joursOriginalL'auteur Paul Williams
@Ima sale troll dit TimeSpan traduit toujours années que 365 jours et les mois de 30 jours.
Pour y remédier, vous devez ajouter chaque champ individuellement plutôt
que l'utilisation de TimeSpan.
OriginalL'auteur pgr