Ce qui est la méthode recommandée de mise en forme `` des objets dans une chaîne avec un format personnalisé ?
Réponses
Trop de publicités?Veuillez noter: cette réponse est pour .Net 4.0 et ci-dessus. Si vous souhaitez formater une plage de Temps .Net 3.5 ou ci-dessous, veuillez voir JohannesH de réponse.
Personnalisé TimeSpan chaînes de format ont été introduits dans .Net 4.0. Vous pouvez trouver la référence complète de la disposition des spécificateurs de format à la MSDN Personnalisé TimeSpan Chaînes de Format de page.
Voici un exemple timespan chaîne de format:
string.Format("{0:hh\\:mm\\:ss}", myTimeSpan); //example output 15:36:15
Vous avez besoin d'échapper le caractère ":" avec un "\" (qui elle-même doit être échappé, sauf si vous utilisez un compte de chaîne).
Cet extrait de la MSDN Personnalisé TimeSpan Chaînes de Format de page explique au sujet d'échapper à l' ":" et "." caractères dans une chaîne de format:
La coutume TimeSpan les spécificateurs de format ne comprennent pas l'espace réservé séparateur de symboles, tels que les symboles qui séparent les jours de heures de, heures de minutes, voire quelques secondes, à partir de fractions de secondes. Au lieu de cela, ces symboles doivent être inclus dans la chaîne de format personnalisée comme des littéraux de chaîne. Par exemple, "dd.hh\:mm" définit un point (.) comme séparateur entre les jours et les heures, et un deux-points (:) comme séparateur entre les heures et les minutes.
Pour .NET 3.5 et versions ultérieures, vous pouvez utiliser:
string.Format ("{0:00}:{1:00}:{2:00}",
(int)myTimeSpan.TotalHours,
myTimeSpan.Minutes,
myTimeSpan.Seconds);
Code tiré d'une réponse de Jon Skeet sur les octets
Pour .NET 4.0 et supérieur, consultez la réponse DoctaJonez.
L'une des méthodes consiste à créer un objet DateTime
et à l'utiliser pour le formatage:
new DateTime(myTimeSpan.Ticks).ToString(myCustomFormat)
// or using String.Format:
String.Format("{0:HHmmss}", new DateTime(myTimeSpan.Ticks))
C'est comme ça que je sais. J'espère que quelqu'un peut suggérer une meilleure façon.
Simple. Utilisez TimeSpan.ToString
avec c, g ou G. Plus d'informations sur http://msdn.microsoft.com/en-us/library/ee372286.aspx