346 votes

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

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

Disons que j'ai 80 secondes, existe-t-il des classes/techniques spécialisées dans .NET qui me permettraient de convertir ces 80 secondes au format (00h:00m:00s:00ms) comme dans DateTime ou autre ?

678voto

pdx mobilist Points 2821

Il suffit d'utiliser la classe TimeSpan.

TimeSpan t = TimeSpan.FromSeconds( secs );

string answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms", 
                t.Hours, 
                t.Minutes, 
                t.Seconds, 
                t.Milliseconds);

93voto

Inder Kumar Rathore Points 13538

Pour .NET > 4.0 vous pouvez utiliser

TimeSpan time = TimeSpan.FromSeconds(seconds);

//here backslash is must to tell that colon is
//not the part of format, it just a character that we want in output
string str = time .ToString(@"hh\:mm\:ss\:fff");

ou si vous voulez le format date-heure, vous pouvez aussi faire ceci

TimeSpan time = TimeSpan.FromSeconds(seconds);
DateTime dateTime = DateTime.Today.Add(time);
string displayTime = date.ToString("hh:mm:tt");

Pour en savoir plus, vous pouvez consulter Chaînes de format TimeSpan personnalisées

28voto

Jim Mischel Points 68586

Si vous savez que vous disposez d'un nombre de secondes, vous pouvez créer une valeur TimeSpan en appelant TimeSpan.FromSeconds :

 TimeSpan ts = TimeSpan.FromSeconds(80);

Vous pouvez alors obtenir le nombre de jours, d'heures, de minutes ou de secondes. Ou utilisez l'une des surcharges ToString pour l'afficher de la manière que vous souhaitez.

11voto

toad Points 1196

10voto

Jim Petkus Points 3447

Le constructeur TimeSpan vous permet de passer en secondes. Il suffit de déclarer une variable de type TimeSpan quantité de secondes. Ex :

TimeSpan span = new TimeSpan(0, 0, 500);
span.ToString();

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