Stringhe di formato TimeSpan standard
Una stringa di formato standard TimeSpan usa un singolo identificatore di formato per definire la rappresentazione testuale di un valore TimeSpan risultante da un'operazione di formattazione. Qualsiasi stringa di formato contenente più di un carattere, incluso lo spazio vuoto, viene interpretata come una stringa di formato personalizzata TimeSpan. Per altre informazioni, vedere stringhe di formato TimeSpan personalizzate.
Le rappresentazioni di stringa dei valori TimeSpan vengono generate dalle chiamate agli overload del metodo TimeSpan.ToString, nonché dai metodi che supportano la formattazione composita, ad esempio String.Format. Per altre informazioni, vedere Formattazione dei tipi e formattazione composita. Nell'esempio seguente viene illustrato l'uso di stringhe di formato standard nelle operazioni di formattazione.
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: {duration:c}");
}
}
// The example displays the following output:
// Time of Travel: 1.12:24:02
// Time of Travel: 1.12:24:02
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
Le stringhe di formato TimeSpan standard vengono usate anche dai metodi TimeSpan.ParseExact e TimeSpan.TryParseExact per definire il formato richiesto 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'uso di stringhe di formato standard nelle operazioni di analisi.
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 '{value}' to {interval}");
}
catch (FormatException) {
Console.WriteLine($"{value}: Bad Format");
}
catch (OverflowException) {
Console.WriteLine($"{value}: Out of Range");
}
if (TimeSpan.TryParseExact(value, "c", null, out interval))
Console.WriteLine($"Converted '{value}' to {interval}");
else
Console.WriteLine($"Unable to convert {value} to a time interval.");
}
}
// 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
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
Nella tabella seguente sono elencati gli identificatori di formato dell'intervallo di tempo standard.
Identificatore di formato | Nome | Descrizione | Esempi |
---|---|---|---|
"c" | Formato costante (invariante) | Questo identificatore non è sensibile alle impostazioni cultura. Assume il formato [-][d'.']hh':'mm':'ss['.'fffffff] .Le stringhe di formato "t" e "T" producono gli stessi risultati. Altre informazioni: Identificatore di formato costante ("c"). |
TimeSpan.Zero -> 00:00:00New TimeSpan(0, 0, 30, 0) -> 00:30:00New TimeSpan(3, 17, 25, 30, 500) -> 3.17:25:30.5000000 |
"g" | Formato breve generale | Questo identificatore restituisce solo ciò che è necessario. È sensibile alle impostazioni cultura e assume il formato [-][d':']h':'mm':'ss[.FFFFFFF] .Altre informazioni: Identificatore di formato generale breve ("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 lungo generale | Questo identificatore restituisce sempre giorni e sette cifre frazionarie. È sensibile alle impostazioni cultura e assume il formato [-]d':'hh':'mm':'ss.fffffff .Altre informazioni: Identificatore di formato generale ("G"). |
New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US)New TimeSpan(18, 30, 0) -> 0:18:30:00.000000 (fr-FR) |
Identificatore di formato costante ("c")
L'identificatore di formato "c" restituisce la rappresentazione di stringa di un valore TimeSpan nel formato seguente:
[-][d.]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 descritti gli elementi rimanenti.
Elemento | Descrizione |
---|---|
- | Segno negativo facoltativo, che indica un intervallo di tempo negativo. |
g | Numero facoltativo di giorni, senza zeri iniziali. |
eh | Numero di ore, compreso tra "00" e "23". |
mm | Numero di minuti, compreso tra "00" e "59". |
ss | Numero di secondi, compreso tra "0" e "59". |
fffffff | Parte frazionaria facoltativa di un secondo. Il valore può variare da "0000001" (un segno di graduazione o un dieci milionesimo di secondo) a "9999999" (9.999.999 dieci milioni di secondi o un secondo meno un segno di graduazione). |
A differenza degli identificatori di formato "g" e "G", l'identificatore di formato "c" non è sensibile alle impostazioni cultura. Produce la rappresentazione di stringa di un valore TimeSpan invariante e comune alle versioni precedenti a .NET Framework 4. "c" è la stringa di formato predefinita TimeSpan; il metodo TimeSpan.ToString() formatta un valore di intervallo di tempo usando la stringa di formato "c".
Nota
TimeSpan supporta anche le stringhe di formato standard "t" e "T", che sono identiche nel comportamento alla stringa di formato standard "c".
L'esempio seguente crea un'istanza di due oggetti TimeSpan, li usa per eseguire operazioni aritmetiche e visualizza il risultato. In ogni caso, usa la formattazione composita per visualizzare il valore TimeSpan usando l'identificatore di formato "c".
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($"{interval1:c} - {interval2:c} = {interval1 - interval2:c}");
Console.WriteLine($"{interval1:c} + {interval2:c} = {interval1 + interval2:c}");
interval1 = new TimeSpan(0, 0, 1, 14, 365);
interval2 = TimeSpan.FromTicks(2143756);
Console.WriteLine($"{interval1:c} + {interval2:c} = {interval1 + interval2:c}");
}
}
// 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
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
Identificatore di formato Generale breve ("g")
L'identificatore di formato "g" TimeSpan restituisce la rappresentazione di stringa di un valore TimeSpan in una forma compatta includendo solo gli elementi necessari. Ha il formato seguente:
[-][d:]h:mm:ss[.FFFFFFF]
Gli elementi tra parentesi quadre ([ e ]) sono facoltativi. I due punti (:) è un simbolo letterale. Nella tabella seguente vengono descritti gli elementi rimanenti.
Elemento | Descrizione |
---|---|
- | Segno negativo facoltativo, che indica un intervallo di tempo negativo. |
g | Numero facoltativo di giorni, senza zeri iniziali. |
h | Numero di ore, compreso tra "0" e "23", senza zeri iniziali. |
mm | Numero di minuti, compreso tra "00" e "59". |
ss | Numero di secondi, compreso tra "00" e "59". |
. | Separatore dei secondi frazionari. Equivale alla proprietà NumberDecimalSeparator delle impostazioni cultura specificate senza override dell'utente. |
FFFFFFF | Secondi frazionari. Vengono visualizzate le poche cifre possibili. |
Analogamente all'identificatore di formato "G", l'identificatore di formato "g" viene localizzato. Il separatore dei secondi frazionari si basa sulle impostazioni cultura correnti o sulla proprietà NumberDecimalSeparator delle impostazioni cultura specificate.
L'esempio seguente crea un'istanza di due oggetti TimeSpan, li usa per eseguire operazioni aritmetiche e visualizza il risultato. In ogni caso, usa la formattazione composita per visualizzare il valore TimeSpan usando l'identificatore di formato "g". Inoltre, formatta il valore TimeSpan usando le convenzioni di formattazione delle impostazioni cultura di sistema correnti (che, in questo caso, è inglese - Stati Uniti o en-US) e le impostazioni cultura francese - Francia (fr-FR) .
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($"{interval1:g} - {interval2:g} = {interval1 - interval2:g}");
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($"{interval1:g} + {interval2:g} = {interval1 + interval2:g}");
}
}
// 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
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
Identificatore di formato Generic Long ("G")
L'identificatore di formato "G" TimeSpan restituisce la rappresentazione di stringa di un valore TimeSpan in un formato lungo che include sempre sia i giorni che i secondi frazionari. La stringa risultante dall'identificatore di formato standard "G" ha il formato seguente:
[-]d:hh:mm:ss.fffffff
Gli elementi tra parentesi quadre ([ e ]) sono facoltativi. I due punti (:) è un simbolo letterale. Nella tabella seguente vengono descritti gli elementi rimanenti.
Elemento | Descrizione |
---|---|
- | Segno negativo facoltativo, che indica un intervallo di tempo negativo. |
g | Numero di giorni, senza zeri iniziali. |
eh | Numero di ore, compreso tra "00" e "23". |
mm | Numero di minuti, compreso tra "00" e "59". |
ss | Numero di secondi, compreso tra "00" e "59". |
. | Separatore dei secondi frazionari. Equivale alla proprietà NumberDecimalSeparator delle impostazioni cultura specificate senza override dell'utente. |
fffffff | Secondi frazionari. |
Analogamente all'identificatore di formato "G", l'identificatore di formato "g" viene localizzato. Il separatore dei secondi frazionari si basa sulle impostazioni cultura correnti o sulla proprietà NumberDecimalSeparator delle impostazioni cultura specificate.
L'esempio seguente crea un'istanza di due oggetti TimeSpan, li usa per eseguire operazioni aritmetiche e visualizza il risultato. In ogni caso, usa la formattazione composita per visualizzare il valore TimeSpan usando l'identificatore di formato "G". Inoltre, formatta il valore TimeSpan usando le convenzioni di formattazione delle impostazioni cultura di sistema correnti (che, in questo caso, è inglese - Stati Uniti o en-US) e le impostazioni cultura francese - Francia (fr-FR) .
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($"{interval1:G} - {interval2:G} = {interval1 - interval2:G}");
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($"{interval1:G} + {interval2:G} = {interval1 + interval2:G}");
}
}
// 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
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