64 votes

Convertir des millisecondes en timelapse lisible par l’homme

J’aimerais formater certains temps d’exécution des commandes dans un format lisible par l’homme, par exemple :

En tenant compte des jours, des heures, des minutes, des secondes, ...

Est-il possible d’utiliser `` ?

117voto

walther Points 7554

Vous pouvez utiliser la classe TimeSpan, quelque chose comme ceci :

C’est assez similaire à ce fil que je viens de trouver:

Quelle est la meilleure façon de convertir les secondes en temps (Heure:Minutes:Secondes:Millisecondes) ?

25voto

Ian Becker Points 251

Je sais que c’est vieux, mais je voulais répondre avec un excellent paquet nuget.

https://www.nuget.org/packages/Humanizer

https://github.com/MehdiK/Humanizer

Exemple tiré de leur readme.md

16voto

Nuffin Points 3045

Vous pouvez utiliser la méthode statique ainsi que les propriétés résultantes , , et `` les ```` propriétés.

Mais je suis occupé en ce moment, alors je vais vous laisser le reste comme un exercice.

16voto

Igor Korkhov Points 4460

Et ça?

 var ts = TimeSpan.FromMilliseconds(86300000 /*whatever */);
var parts = string
                .Format("{0:D2}d:{1:D2}h:{2:D2}m:{3:D2}s:{4:D3}ms",
                    ts.Days, ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds)
                .Split(':')
                .SkipWhile(s => Regex.Match(s, @"00\w").Success) // skip zero-valued components
                .ToArray();
var result = string.Join(" ", parts); // combine the result

Console.WriteLine(result);            // prints '23h 58m 20s 000ms'

9voto

hungryMind Points 4572

.NET 4 accepte le format dans `` .

Pour d’autres, vous pouvez implémenter une méthode d’extension comme

et appelez en tant que

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X