TimeSpan Mise En Forme De Chaîne
J'ai un laps de Temps que j'ai besoin d'une sortie dans un format particulier, comme indiqué ci-dessous :-
TimeSpan TimeDifference = DateTime.Now - RandomDate;
Je suis le formatage de la plage de Temps, comme ceci :-
string result = string.Format(@"{0:hh\:mm\:ss}", TimeDifference);
Le Résultat devrait ressembler à quelque chose comme ceci :-
"00:16:45.6184635"
Comment puis-je tour ces secondes de 0 décimales?
Expected Result = 00:16:46
Grâce
Pouvez-vous afficher les résultats attendus?
OriginalL'auteur Derek | 2013-01-31
Vous devez vous connecter pour publier un commentaire.
Votre code fonctionne avec .NET 4, mais pas avec 3,5 car il y avait une modification de rupture sur 4,
TimeSpan
implémente maintenantIFormattable
(voir ci-dessous).Ce que vous pouvez faire sur 3,5 ou inférieure, convertir le
TimeSpan
àDateTime
et l'utilisationToString
:Ici vous pouvez voir le non-travail + travail version:http://ideone.com/Ak1HuD
Modifier je pense que la raison pour laquelle cela fonctionne parfois et parfois pas, c'est que depuis .NET 4.0
Temps
implémenteIFormattable
qui semble être utilisé parString.Format
.C'est bizarre, je pense que le problème doit venir avec la date-heure que je suis en déduisant de DateTime.Maintenant, dans mon application. Comme dans exaples ci-dessus, mon code ne fonctionne pas.
Édité ma réponse à fournir un moyen sur de 3,5 par la conversion de la
TimeSpan
àDateTime
. Les exemples fonctionnent, car ils ont tout simplement ajouter des heures entières, alors vous n'avez pas l'arrondissement problème avec des fractions de secondes.Merci Tim, cela fonctionne très bien.
+1 Tim, bonne explication,
TimeSpan.ToString
n'a pas une surcharge pour la chaîne de format .Net 2.0.OriginalL'auteur Rango
Votre code devrait fonctionner correctement (après enlèvement de mineur les erreurs de syntaxe). Considérons l'exemple suivant:
De sortie:
06:00:00
.Non, C'est très bien. Merci.
vous êtes les bienvenus
Mais jetez un oeil à ideone: ideone.com/FMye8j je suppose que c'est le cadre dépendants avec
string.Format
.Où est votre réponse disparu?
OriginalL'auteur Habib
Fonctionne très bien pour moi.
Par exemple, ce programme:
Sorties quelque chose comme:
Donc, arrondi comme dans mon exemple ci-dessus devrait résoudre le problème .Net 3.5 trop, je pense.
Oui, je le pense. Il ignore le fait que tout le reste ne fonctionne pas pour l'OP (ou à quelqu'un en utilisant un .Version NET inférieur than4 )
OriginalL'auteur Matthew Watson