Condividi tramite


Stringhe di formato TimeSpan standard

Una stringa di formato TimeSpan standard utilizza un singolo identificatore di formato per definire la rappresentazione di testo di un valore TimeSpan derivante da un'operazione di formattazione. Le stringhe di formato contenenti più caratteri, inclusi gli spazi vuoti, vengono interpretate come stringhe di formato TimeSpan personalizzate. Per ulteriori informazioni, vedere Stringhe di formato TimeSpan personalizzate.

Le rappresentazioni di stringa di valori TimeSpan vengono prodotte dalle chiamate agli overload del metodo TimeSpan.ToString, nonché dai metodi che supportano la formattazione composita, ad esempio String.Format. Per ulteriori informazioni, vedere Formattazione dei tipi di dati e Formattazione composta. Nell'esempio seguente viene illustrato l'utilizzo delle stringhe di formato standard nelle operazioni di formattazione.

Module Example
   Public Sub Main()
      Dim duration As New TimeSpan(1, 12, 23, 62)
      Dim output As String = "Time of Travel: " + duration.ToString("c")
      Console.WriteLine(output)

      Console.WriteLine("Time of Travel: {0:c}", duration) 
   End Sub
End Module
' The example displays the following output:
'       Time of Travel: 1.12:24:02
'       Time of Travel: 1.12:24:02
using System;

public class Example
{
   public static void Main()
   {
      TimeSpan duration = new TimeSpan(1, 12, 23, 62);
      string output = "Time of Travel: " + duration.ToString("c");
      Console.WriteLine(output);

      Console.WriteLine("Time of Travel: {0:c}", duration); 
   }
}
// The example displays the following output:
//       Time of Travel: 1.12:24:02
//       Time of Travel: 1.12:24:02

Le stringhe di formato standard TimeSpan vengono inoltre utilizzate dai metodi TimeSpan.ParseExact e TimeSpan.TryParseExact per definire il formato obbligatorio delle stringhe di input per le operazioni di analisi. L'analisi converte la rappresentazione di stringa di un valore in tale valore. Nell'esempio seguente viene illustrato l'utilizzo delle stringhe di formato standard nelle operazioni di analisi.

Module Example
   Public Sub Main()
      Dim value As String = "1.03:14:56.1667"
      Dim interval As TimeSpan
      Try
         interval = TimeSpan.ParseExact(value, "c", Nothing)
         Console.WriteLine("Converted '{0}' to {1}", value, interval)
      Catch e As FormatException
         Console.WriteLine("{0}: Bad Format", value)
      Catch e As OverflowException
         Console.WriteLine("{0}: Out of Range", value)
      End Try

      If TimeSpan.TryParseExact(value, "c", Nothing, interval) Then
         Console.WriteLine("Converted '{0}' to {1}", value, interval)
      Else
         Console.WriteLine("Unable to convert {0} to a time interval.", 
                           value)
      End If                
   End Sub
End Module
' The example displays the following output:
'       Converted '1.03:14:56.1667' to 1.03:14:56.1667000
'       Converted '1.03:14:56.1667' to 1.03:14:56.1667000
using System;

public class Example
{
   public static void Main()
   {
      string value = "1.03:14:56.1667";
      TimeSpan interval;
      try {
         interval = TimeSpan.ParseExact(value, "c", null);
         Console.WriteLine("Converted '{0}' to {1}", value, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("{0}: Bad Format", value);
      }   
      catch (OverflowException) {
         Console.WriteLine("{0}: Out of Range", value);
      }

      if (TimeSpan.TryParseExact(value, "c", null, out interval))
         Console.WriteLine("Converted '{0}' to {1}", value, interval);
      else
         Console.WriteLine("Unable to convert {0} to a time interval.", 
                           value);
   }
}
// The example displays the following output:
//       Converted '1.03:14:56.1667' to 1.03:14:56.1667000
//       Converted '1.03:14:56.1667' to 1.03:14:56.1667000

Nella tabella seguente vengono elencati gli identificatori di formato di intervallo di tempo standard.

Identificatore di formato

Nome

Descrizione

Esempi

"c"

Formato di costante (invariante)

Questo identificatore non è collegato alle impostazioni cultura. Assume il formato [-][d’.’]hh’:’mm’:’ss[‘.’fffffff].

Le stringhe di formato "t" e "T" danno gli stessi risultati.

Ulteriori informazioni: Identificatore di formato di costante ("c").

TimeSpan.Zero -> 00:00:00

New TimeSpan(0, 0, 30, 0) -> 00:30:00

New TimeSpan(3, 17, 25, 30, 500) -> 3.17:25:30.5000000

"g"

Formato breve generale

Questo identificatore restituisce come output solo gli elementi necessari. È collegato alle impostazioni cultura e assume il formato [-][d’:’]h’:’mm’:’ss[.FFFFFFF].

Ulteriori informazioni: Identificatore di formato breve generale ("g").

New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50.5 (en-US)

New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50,5 (fr-FR)

New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50.599 (en-US)

New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50,599 (fr-FR)

"G"

Formato esteso generale

Questo identificatore restituisce sempre come output i giorni e sette cifre frazionarie. È collegato alle impostazioni cultura e assume il formato [-]d’:’hh’:’mm’:’ss.fffffff.

Ulteriori informazioni: Identificatore di formato esteso generale ("G").

New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US)

New TimeSpan(18, 30, 0) -> 0:18:30:00,0000000 (fr-FR)

Identificatore di formato di costante ("c")

L'identificatore di formato "c" restituisce la rappresentazione di stringa di un valore TimeSpan nel formato seguente:

[-][g.]hh:mm:ss[.fffffff]

Gli elementi tra parentesi quadre ([ e ]) sono facoltativi. Il punto (.) e i due punti (:) sono simboli letterali. Nella tabella seguente vengono illustrati gli elementi rimanenti.

Elemento

Descrizione

-

Segno negativo facoltativo che indica un intervallo di tempo negativo.

d

Numero di giorni facoltativo senza zeri iniziali.

hh

Numero di ore nell'intervallo compreso tra "00" e "23".

mm

Numero di minuti nell'intervallo compreso tra "00" e "59".

ss

Numero di secondi nell'intervallo compreso tra "0" e "59".

fffffff

Numero di millisecondi facoltativo nell'intervallo compreso tra "0010000" e "9990000".

A differenza degli identificatori di formato "g" e "G", l'identificatore di formato "c" non è collegato alle impostazioni cultura. Produce la rappresentazione di stringa di un valore TimeSpan invariante e comune a tutte le versioni di .NET Framework precedenti .NET Framework versione 4. " c" è la stringa di formato TimeSpan predefinita; il metodo TimeSpan.ToString() formatta un valore di intervallo di tempo tramite la stringa di formato "c".

NotaNota

TimeSpan supporta inoltre le stringhe di formato standard "t" e "T" il cui comportamento è identico a quello della stringa di formato standard "c".

Nell'esempio seguente vengono create le istanze di due oggetti TimeSpan, vengono eseguite operazioni aritmetiche che utilizzano tali istanze e viene visualizzato il risultato delle operazioni. In ogni caso, viene utilizzata la formattazione composita per visualizzare il valore TimeSpan tramite l'identificatore di formato "c".

Module Example
   Public Sub Main()
      Dim interval1, interval2 As TimeSpan
      interval1 = New TimeSpan(7, 45, 16)
      interval2 = New TimeSpan(18, 12, 38)

      Console.WriteLine("{0:c} - {1:c} = {2:c}", interval1, 
                        interval2, interval1 - interval2)
      Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1, 
                        interval2, interval1 + interval2)

      interval1 = New TimeSpan(0, 0, 1, 14, 365)
      interval2 = TimeSpan.FromTicks(2143756)      
      Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1, 
                        interval2, interval1 + interval2)
   End Sub
End Module
' The example displays the following output:
'       07:45:16 - 18:12:38 = -10:27:22
'       07:45:16 + 18:12:38 = 1.01:57:54
'       00:01:14.3650000 + 00:00:00.2143756 = 00:01:14.5793756
using System;

public class Example
{
   public static void Main()
   {
      TimeSpan interval1, interval2;
      interval1 = new TimeSpan(7, 45, 16);
      interval2 = new TimeSpan(18, 12, 38);

      Console.WriteLine("{0:c} - {1:c} = {2:c}", interval1, 
                        interval2, interval1 - interval2);
      Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1, 
                        interval2, interval1 + interval2);

      interval1 = new TimeSpan(0, 0, 1, 14, 365);
      interval2 = TimeSpan.FromTicks(2143756);  
      Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1, 
                        interval2, interval1 + interval2);
   }
}
// The example displays the following output:
//       07:45:16 - 18:12:38 = -10:27:22
//       07:45:16 + 18:12:38 = 1.01:57:54
//       00:01:14.3650000 + 00:00:00.2143756 = 00:01:14.5793756

Torna alla tabella

Identificatore di formato breve generale ("g")

L'identificatore di formato "g" TimeSpan restituisce la rappresentazione di stringa di un valore TimeSpan in un formato compresso includendo solo gli elementi necessari. Presenta il formato seguente:

[-][g:]h:mm:ss[.FFFFFFF]

Gli elementi tra parentesi quadre ([ e ]) sono facoltativi. I due punti (:) sono un simbolo letterale. Nella tabella seguente vengono illustrati gli elementi rimanenti.

Elemento

Descrizione

-

Segno negativo facoltativo che indica un intervallo di tempo negativo.

d

Numero di giorni facoltativo senza zeri iniziali.

h

Numero di ore nell'intervallo compreso tra "0" e "23", senza zeri iniziali.

mm

Numero di minuti nell'intervallo compreso tra "00" e "59".

ss

Numero di secondi nell'intervallo compreso tra "00" e "59".

.

Separatore dei secondi frazionari. Equivale alla proprietà NumberDecimalSeparator delle impostazioni cultura specificate senza override dell'utente.

FFFFFFF

Secondi frazionari. Viene visualizzato il numero di cifre più basso possibile.

Come l'identificatore di formato "G", l'identificatore di formato "g" è localizzato. Il separatore dei secondi frazionari è basato sulle impostazioni cultura correnti o sulla proprietà NumberDecimalSeparator delle impostazioni cultura specificate.

Nell'esempio seguente vengono create le istanze di due oggetti TimeSpan, vengono eseguite operazioni aritmetiche che utilizzano tali istanze e viene visualizzato il risultato delle operazioni. In ogni caso, viene utilizzata la formattazione composita per visualizzare il valore TimeSpan tramite l'identificatore di formato "g". Inoltre, il valore TimeSpan viene formattato mediante le convenzioni di formattazione delle impostazioni cultura correnti del sistema (in questo caso inglese - Stati Uniti o en-US) e delle impostazioni cultura francese - Francia o fr-FR.

Imports System.Globalization

Module Example
   Public Sub Main()
      Dim interval1, interval2 As TimeSpan
      interval1 = New TimeSpan(7, 45, 16)
      interval2 = New TimeSpan(18, 12, 38)

      Console.WriteLine("{0:g} - {1:g} = {2:g}", interval1, 
                        interval2, interval1 - interval2)
      Console.WriteLine(String.Format(New CultureInfo("fr-FR"), 
                        "{0:g} + {1:g} = {2:g}", interval1, 
                        interval2, interval1 + interval2))

      interval1 = New TimeSpan(0, 0, 1, 14, 36)
      interval2 = TimeSpan.FromTicks(2143756)      
      Console.WriteLine("{0:g} + {1:g} = {2:g}", interval1, 
                        interval2, interval1 + interval2)
   End Sub
End Module
' The example displays the following output:
'       7:45:16 - 18:12:38 = -10:27:22
'       7:45:16 + 18:12:38 = 1:1:57:54
'       0:01:14.036 + 0:00:00.2143756 = 0:01:14.2503756
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      TimeSpan interval1, interval2;
      interval1 = new TimeSpan(7, 45, 16);
      interval2 = new TimeSpan(18, 12, 38);

      Console.WriteLine("{0:g} - {1:g} = {2:g}", interval1, 
                        interval2, interval1 - interval2);
      Console.WriteLine(String.Format(new CultureInfo("fr-FR"), 
                        "{0:g} + {1:g} = {2:g}", interval1, 
                        interval2, interval1 + interval2));

      interval1 = new TimeSpan(0, 0, 1, 14, 36);
      interval2 = TimeSpan.FromTicks(2143756);      
      Console.WriteLine("{0:g} + {1:g} = {2:g}", interval1, 
                        interval2, interval1 + interval2);
   }
}
// The example displays the following output:
//       7:45:16 - 18:12:38 = -10:27:22
//       7:45:16 + 18:12:38 = 1:1:57:54
//       0:01:14.036 + 0:00:00.2143756 = 0:01:14.2503756

Torna alla tabella

Identificatore di formato esteso generale ("G")

L'identificatore di formato "G" TimeSpan restituisce la rappresentazione di stringa di un valore TimeSpan in un formato esteso che include sempre sia i giorni sia i secondi frazionari. La stringa restituita dall'identificatore di formato standard "G" ha il formato seguente:

[-]g:hh:mm:ss.fffffff

Gli elementi tra parentesi quadre ([ e ]) sono facoltativi. I due punti (:) sono un simbolo letterale. Nella tabella seguente vengono illustrati gli elementi rimanenti.

Elemento

Descrizione

-

Segno negativo facoltativo che indica un intervallo di tempo negativo.

d

Numero di giorni senza zeri iniziali.

hh

Numero di ore nell'intervallo compreso tra "00" e "23".

mm

Numero di minuti nell'intervallo compreso tra "00" e "59".

ss

Numero di secondi nell'intervallo compreso tra "00" e "59".

.

Separatore dei secondi frazionari. Equivale alla proprietà NumberDecimalSeparator delle impostazioni cultura specificate senza override dell'utente.

fffffff

Secondi frazionari.

Come l'identificatore di formato "G", l'identificatore di formato "g" è localizzato. Il separatore dei secondi frazionari è basato sulle impostazioni cultura correnti o sulla proprietà NumberDecimalSeparator delle impostazioni cultura specificate.

Nell'esempio seguente vengono create le istanze di due oggetti TimeSpan, vengono eseguite operazioni aritmetiche che utilizzano tali istanze e viene visualizzato il risultato delle operazioni. In ogni caso, viene utilizzata la formattazione composita per visualizzare il valore TimeSpan tramite l'identificatore di formato "G". Inoltre, il valore TimeSpan viene formattato mediante le convenzioni di formattazione delle impostazioni cultura correnti del sistema (in questo caso inglese - Stati Uniti o en-US) e delle impostazioni cultura francese - Francia o fr-FR.

Imports System.Globalization

Module Example
   Public Sub Main()
      Dim interval1, interval2 As TimeSpan
      interval1 = New TimeSpan(7, 45, 16)
      interval2 = New TimeSpan(18, 12, 38)

      Console.WriteLine("{0:G} - {1:G} = {2:G}", interval1, 
                        interval2, interval1 - interval2)
      Console.WriteLine(String.Format(New CultureInfo("fr-FR"), 
                        "{0:G} + {1:G} = {2:G}", interval1, 
                        interval2, interval1 + interval2))

      interval1 = New TimeSpan(0, 0, 1, 14, 36)
      interval2 = TimeSpan.FromTicks(2143756)      
      Console.WriteLine("{0:G} + {1:G} = {2:G}", interval1, 
                        interval2, interval1 + interval2)
   End Sub
End Module
' The example displays the following output:
'       0:07:45:16.0000000 - 0:18:12:38.0000000 = -0:10:27:22.0000000
'       0:07:45:16,0000000 + 0:18:12:38,0000000 = 1:01:57:54,0000000
'       0:00:01:14.0360000 + 0:00:00:00.2143756 = 0:00:01:14.2503756
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      TimeSpan interval1, interval2;
      interval1 = new TimeSpan(7, 45, 16);
      interval2 = new TimeSpan(18, 12, 38);

      Console.WriteLine("{0:G} - {1:G} = {2:G}", interval1, 
                        interval2, interval1 - interval2);
      Console.WriteLine(String.Format(new CultureInfo("fr-FR"), 
                        "{0:G} + {1:G} = {2:G}", interval1, 
                        interval2, interval1 + interval2));

      interval1 = new TimeSpan(0, 0, 1, 14, 36);
      interval2 = TimeSpan.FromTicks(2143756);      
      Console.WriteLine("{0:G} + {1:G} = {2:G}", interval1, 
                        interval2, interval1 + interval2);
   }
}
// The example displays the following output:
//       0:07:45:16.0000000 - 0:18:12:38.0000000 = -0:10:27:22.0000000
//       0:07:45:16,0000000 + 0:18:12:38,0000000 = 1:01:57:54,0000000
//       0:00:01:14.0360000 + 0:00:00:00.2143756 = 0:00:01:14.2503756

Torna alla tabella

Vedere anche

Concetti

Formattazione dei tipi di dati

Altre risorse

Stringhe di formato TimeSpan personalizzate

Analisi delle stringhe