Durée d'affichage en millisecondes
Je veux afficher la durée en millisecondes sur une page web. Jusqu'à présent, j'ai fait:
J'ai réussi à afficher cette sortie sur un label: 00:02:50, mais je veux afficher les millisecondes ainsi, de sorte que le résultat devrait ressembler à ceci 00:02:50:000. Comment puis-je y parvenir?
Code derrière:
protected void Page_Load(object sender, EventArgs e)
{
DateTime startTime = DateTime.Now;
//sleep for 2.5s
Thread.Sleep(2500);
DateTime stopTime = DateTime.Now;
TimeSpan duration = stopTime - startTime;
Result.Text = duration.ToString("mm':'ss':'ff");
}
source d'informationauteur fn27
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, si vous êtes timing choses je vous conseille d'utiliser le Chronomètre de la classe comme ça là pour. Vous pouvez le trouver dans le Système.Diagnostics espace de noms:
System.Diagnostics.Stopwatch
.Vous pouvez instancier un nouveau et commencer à mesurer le temps écoulé avec une seule ligne de code:
var stop = System.Diagnostics.Stopwatch.StartNew();
puis l'arrêt de la minuterie avec la méthode stop:stop.Stop();
. Vous pouvez ensuite retourner le temps écoulé à l'aide de l'écoulement de la propriétévar elapsed = stop.Elapsed;
.Puis dans afin d'afficher le temps écoulé avec millisecondes vous devez appeler la méthode ToString sur le laps de temps écoulé avec les paramètres corrects.
Afin de mettre l'ensemble de votre code devrait ressembler à ceci:
Espère que ça aide!
James
La doc a dit: "fff" vous donne:
Vous êtes à l'aide de "ff", qui vous donne:
Changez votre code:
Votre code doit être l'affichage de minutes, secondes et centièmes de seconde.
Pour afficher milliseonds au lieu de quelques centièmes de seconde:
Consultez la documentation de Personnaliser la Date et l'Heure des Chaînes de Format.
Je pense que vous êtes confus. Dans votre cas
00:02:50
moyen de 2 secondes et 50 centièmes de seconde. Si vous souhaitez afficher les millisecondes, utilisez le format commemm':'ss':'fff
(notez l'on a ajoutéf
). Cela permettra d'imprimer quelque chose comme00:02:500
c'est à dire 2 secondes et 500 millièmes de seconde, ou 2 s 500 ms.Mais cela ne signifie pas que vos mesures sont précises vers le bas à l'ordre de la milliseconde. Ce n'est pas ce
DateTime.Now
est censé faire. Si vous voulez faire des mesures précises, vous devez utiliserChronomètre
.Sinon il suffit d'utiliser les propriétés de la plage de temps comme ceci:
De cette façon, je pense que vous gagnez plus de contrôle sur ce que vous souhaitez afficher, au lieu de formater la plage de temps dans le ToString()-méthode qui plus facilement les fautes de frappe à faire...
Espérons que cette aide!
Mise à jour:
Ajouter les heures ainsi c'est comment ça va ressembler:
Utilisation TimeSpan.Méthode ToString avec un format personnalisé.
La chaîne renvoyée est formaté avec le "c" spécificateur de format et a le format suivant:
Éléments entre crochets ([ et ]) ne peut pas être inclus dans la chaîne renvoyée. Des virgules et des points (: et.) sont des caractères littéraux.
ou
Ref :Personnaliser la Date et l'Heure des Chaînes de FormatLa "fff" Spécificateur de Format Personnalisé