TimeSpan.ToString Method (String, IFormatProvider)

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Converts the value of the current TimeSpan object to its equivalent string representation by using the specified format and culture-specific formatting information.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

Syntax

Public Function ToString ( _
    format As String, _
    formatProvider As IFormatProvider _
) As String
public string ToString(
    string format,
    IFormatProvider formatProvider
)

Parameters

Return Value

Type: System..::.String
The string representation of the current TimeSpan value, as specified by format and formatProvider.

Implements

IFormattable..::.ToString(String, IFormatProvider)

Exceptions

Exception Condition
FormatException

The format parameter is not recognized or is not supported.

Remarks

The format parameter can be any valid standard or custom format specifier for TimeSpan values. If format is equal to String..::.Empty or is nullNothingnullptra null reference (Nothing in Visual Basic), the return value of the current TimeSpan object is formatted with the common format specifier ("c"). If format is any other value, the method throws a FormatException.

The .NET Framework provides extensive formatting support, which is described in greater detail in the following formatting topics:

The formatProvider parameter is an IFormatProvider implementation that provides culture-specific information about the format of the returned string. The formatProvider parameter can be any of the following:

If formatProvider is nullNothingnullptra null reference (Nothing in Visual Basic), the DateTimeFormatInfo object that is associated with the current culture is used.

Examples

The following example calls the ToString(String, IFormatProvider) method to format two time intervals. The example calls the method twice for each format string, first to display it using the conventions of the en-US culture and then to display it using the conventions of the fr-FR culture.

Imports System.Globalization

Module Example
   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      outputBlock.FontFamily = New System.Windows.Media.FontFamily("Courier New")

      Dim intervals() As TimeSpan = { New TimeSpan(38, 30, 15), 
                                      New TimeSpan(16, 14, 30) } 
      Dim cultures() As CultureInfo = { New CultureInfo("en-US"), 
                                        New CultureInfo("fr-FR") }
      Dim formats() As String = {"c", "g", "G", "hh\:mm\:ss" }
      outputBlock.Text += String.Format("{0,12}      Format  {1,22}  {2,22}",  
                        "Interval", cultures(0).Name, cultures(1).Name) + vbCrLf
      outputBlock.Text += vbCrLf
      For Each interval In intervals
         For Each fmt In formats
            outputBlock.Text += String.Format("{0,12}  {1,10}  {2,22}  {3,22}", 
                              interval, fmt, 
                              interval.ToString(fmt, cultures(0)), 
                              interval.ToString(fmt, cultures(1))) + vbCrLf
         Next
         outputBlock.Text += vbCrLf
      Next
   End Sub
End Module
' The example displays the following output:
'        Interval      Format                   en-US                   fr-FR
'    
'      1.14:30:15           c              1.14:30:15              1.14:30:15
'      1.14:30:15           g              1:14:30:15              1:14:30:15
'      1.14:30:15           G      1:14:30:15.0000000      1:14:30:15,0000000
'      1.14:30:15  hh\:mm\:ss                14:30:15                14:30:15
'    
'        16:14:30           c                16:14:30                16:14:30
'        16:14:30           g                16:14:30                16:14:30
'        16:14:30           G      0:16:14:30.0000000      0:16:14:30,0000000
'        16:14:30  hh\:mm\:ss                16:14:30                16:14:30
using System;
using System.Globalization;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.FontFamily = new System.Windows.Media.FontFamily("Courier New");

      TimeSpan[] intervals = { new TimeSpan(38, 30, 15), 
                               new TimeSpan(16, 14, 30) };
      CultureInfo[] cultures = { new CultureInfo("en-US"), 
                                 new CultureInfo("fr-FR") };
      string[] formats = { "c", "g", "G", @"hh\:mm\:ss" };
      outputBlock.Text += String.Format("{0,12}      Format  {1,22}  {2,22}\n",
                        "Interval", cultures[0].Name, cultures[1].Name) + "\n";

      foreach (var interval in intervals)
      {
         foreach (var fmt in formats)
            outputBlock.Text += String.Format("{0,12}  {1,10}  {2,22}  {3,22}",
                              interval, fmt,
                              interval.ToString(fmt, cultures[0]),
                              interval.ToString(fmt, cultures[1])) + "\n";
         outputBlock.Text += "\n";
      }
   }
}
// The example displays the following output:
//        Interval      Format                   en-US                   fr-FR
//    
//      1.14:30:15           c              1.14:30:15              1.14:30:15
//      1.14:30:15           g              1:14:30:15              1:14:30:15
//      1.14:30:15           G      1:14:30:15.0000000      1:14:30:15,0000000
//      1.14:30:15  hh\:mm\:ss                14:30:15                14:30:15
//    
//        16:14:30           c                16:14:30                16:14:30
//        16:14:30           g                16:14:30                16:14:30
//        16:14:30           G      0:16:14:30.0000000      0:16:14:30,0000000
//        16:14:30  hh\:mm\:ss                16:14:30                16:14:30

Version Information

Windows Phone OS

Supported in: 8.1, 8.0, 7.1

Platforms

Windows Phone

See Also

Reference

TimeSpan Structure

ToString Overload

System Namespace