Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Uma cadeia de caracteres de formato TimeSpan define a representação de cadeia de caracteres de um valor de TimeSpan que resulta de uma operação de formatação. Uma cadeia de caracteres de formato personalizado consiste em um ou mais especificadores de formato TimeSpan personalizados, juntamente com qualquer número de caracteres literais. Qualquer cadeia de caracteres que não seja uma cadeia de caracteres de formato TimeSpan padrão é interpretada como uma cadeia de caracteres de formato TimeSpan personalizada.
Importante
Os especificadores de formato de TimeSpan personalizados não incluem símbolos separadores de espaço reservado, como os símbolos que separam dias de horas, horas de minutos ou segundos de segundos fracionários. Em vez disso, esses símbolos devem ser incluídos na cadeia de caracteres de formato personalizado como literais de cadeia de caracteres. Por exemplo, "dd\.hh\:mm" define um período (.) como o separador entre dias e horas, e dois pontos (:) como o separador entre horas e minutos.
Os especificadores de formato de TimeSpan personalizados também não incluem um símbolo de sinal que permita diferenciar entre intervalos de tempo negativos e positivos. Para incluir um símbolo de sinal, você precisa construir uma cadeia de caracteres de formato usando lógica condicional. A seção Outros caracteres inclui um exemplo.
As representações de cadeia de caracteres de valores de TimeSpan são produzidas por chamadas para as sobrecargas do método TimeSpan.ToString e por métodos que oferecem suporte à formatação composta, como String.Format. Para obter mais informações, consulte Tipos de formatação e Formatação composta. O exemplo a seguir ilustra o uso de cadeias de caracteres de formato personalizado em operações de formatação.
using System;
public class Example
{
public static void Main()
{
TimeSpan duration = new TimeSpan(1, 12, 23, 62);
string output = null;
output = "Time of Travel: " + duration.ToString("%d") + " days";
Console.WriteLine(output);
output = "Time of Travel: " + duration.ToString(@"dd\.hh\:mm\:ss");
Console.WriteLine(output);
Console.WriteLine($"Time of Travel: {duration:%d} day(s)");
Console.WriteLine($"Time of Travel: {duration:dd\\.hh\\:mm\\:ss} days");
}
}
// The example displays the following output:
// Time of Travel: 1 days
// Time of Travel: 01.12:24:02
// Time of Travel: 1 day(s)
// Time of Travel: 01.12:24:02 days
Module Example
Public Sub Main()
Dim duration As New TimeSpan(1, 12, 23, 62)
Dim output As String = Nothing
output = "Time of Travel: " + duration.ToString("%d") + " days"
Console.WriteLine(output)
output = "Time of Travel: " + duration.ToString("dd\.hh\:mm\:ss")
Console.WriteLine(output)
Console.WriteLine("Time of Travel: {0:%d} day(s)", duration)
Console.WriteLine("Time of Travel: {0:dd\.hh\:mm\:ss} days", duration)
End Sub
End Module
' The example displays the following output:
' Time of Travel: 1 days
' Time of Travel: 01.12:24:02
' Time of Travel: 1 day(s)
' Time of Travel: 01.12:24:02 days
As cadeias de caracteres de formato TimeSpan personalizado também são usadas pelos métodos TimeSpan.ParseExact e TimeSpan.TryParseExact para definir o formato necessário de cadeias de caracteres de entrada para operações de análise. (A análise converte a representação de cadeia de caracteres de um valor nesse valor.) O exemplo a seguir ilustra o uso de cadeias de caracteres de formato padrão em operações de análise.
using System;
public class Example
{
public static void Main()
{
string value = null;
TimeSpan interval;
value = "6";
if (TimeSpan.TryParseExact(value, "%d", null, out interval))
Console.WriteLine($"{value} --> {interval.ToString("c")}");
else
Console.WriteLine($"Unable to parse '{value}'");
value = "16:32.05";
if (TimeSpan.TryParseExact(value, @"mm\:ss\.ff", null, out interval))
Console.WriteLine($"{value} --> {interval.ToString("c")}");
else
Console.WriteLine($"Unable to parse '{value}'");
value= "12.035";
if (TimeSpan.TryParseExact(value, "ss\\.fff", null, out interval))
Console.WriteLine($"{value} --> {interval.ToString("c")}");
else
Console.WriteLine($"Unable to parse '{value}'");
}
}
// The example displays the following output:
// 6 --> 6.00:00:00
// 16:32.05 --> 00:16:32.0500000
// 12.035 --> 00:00:12.0350000
Module Example
Public Sub Main()
Dim value As String = Nothing
Dim interval As TimeSpan
value = "6"
If TimeSpan.TryParseExact(value, "%d", Nothing, interval) Then
Console.WriteLine("{0} --> {1}", value, interval.ToString("c"))
Else
Console.WriteLine("Unable to parse '{0}'", value)
End If
value = "16:32.05"
If TimeSpan.TryParseExact(value, "mm\:ss\.ff", Nothing, interval) Then
Console.WriteLine("{0} --> {1}", value, interval.ToString("c"))
Else
Console.WriteLine("Unable to parse '{0}'", value)
End If
value = "12.035"
If TimeSpan.TryParseExact(value, "ss\.fff", Nothing, interval) Then
Console.WriteLine("{0} --> {1}", value, interval.ToString("c"))
Else
Console.WriteLine("Unable to parse '{0}'", value)
End If
End Sub
End Module
' The example displays the following output:
' 6 --> 6.00:00:00
' 16:32.05 --> 00:16:32.0500000
' 12.035 --> 00:00:12.0350000
A tabela a seguir descreve os especificadores de formato de data e hora personalizados.
| Especificador de formato | Descrição | Exemplo |
|---|---|---|
"d", "%d" |
O número de dias inteiros no intervalo de tempo. Mais informações: O "d" especificador de formato personalizado. |
new TimeSpan(6, 14, 32, 17, 685):%d --> "6"d\.hh\:mm --> "6.14:32" |
"dd"-"dddddddd" |
O número de dias inteiros no intervalo de tempo, acolchoados com zeros à esquerda, conforme necessário. Mais informações: Os "dd"-"dddddddd" especificadores de formato personalizados. |
new TimeSpan(6, 14, 32, 17, 685):ddd --> "006"dd\.hh\:mm --> "06.14:32" |
"h", "%h" |
O número de horas inteiras no intervalo de tempo que não são contadas como parte dos dias. As horas de um dígito não têm um zero à esquerda. Mais informações: O "h" especificador de formato personalizado. |
new TimeSpan(6, 14, 32, 17, 685):%h --> "14"hh\:mm --> "14:32" |
"hh" |
O número de horas inteiras no intervalo de tempo que não são contadas como parte dos dias. As horas de um dígito têm um zero à esquerda. Mais informações: O "hh" especificador de formato personalizado. |
new TimeSpan(6, 14, 32, 17, 685):hh --> "14"new TimeSpan(6, 8, 32, 17, 685):hh --> 08 |
"m", "%m" |
O número de minutos inteiros no intervalo de tempo que não estão incluídos como parte de horas ou dias. Os minutos de um dígito não têm um zero à esquerda. Mais informações: O "m" especificador de formato personalizado. |
new TimeSpan(6, 14, 8, 17, 685):%m --> "8"h\:m --> "14:8" |
"mm" |
O número de minutos inteiros no intervalo de tempo que não estão incluídos como parte de horas ou dias. Os minutos de um dígito têm um zero à esquerda. Mais informações: O "mm" especificador de formato personalizado. |
new TimeSpan(6, 14, 8, 17, 685):mm --> "08"new TimeSpan(6, 8, 5, 17, 685):d\.hh\:mm\:ss --> 6.08:05:17 |
"s", "%s" |
O número de segundos inteiros no intervalo de tempo que não estão incluídos como parte de horas, dias ou minutos. Os segundos de um dígito não têm um zero à esquerda. Mais informações: O "s" especificador de formato personalizado. |
TimeSpan.FromSeconds(12.965):%s -- 12>s\.fff --> 12.965 |
"ss" |
O número de segundos inteiros no intervalo de tempo que não estão incluídos como parte de horas, dias ou minutos. Os segundos de um dígito têm um zero à esquerda. Mais informações: O "ss" especificador de formato personalizado. |
TimeSpan.FromSeconds(6.965):ss -- 06>ss\.fff --> 06.965 |
"f", "%f" |
Os décimos de segundo em um intervalo de tempo. Mais informações: O "f" especificador de formato personalizado. |
TimeSpan.FromSeconds(6.895):f --> 8ss\.f --> 06.8 |
"ff" |
Os centésimos de segundo num intervalo de tempo. Mais informações: O "ff" especificador de formato personalizado. |
TimeSpan.FromSeconds(6.895):ff --> 89ss\.ff --> 06.89 |
"fff" |
Os milissegundos em um intervalo de tempo. Mais informações: O "fff" especificador de formato personalizado. |
TimeSpan.FromSeconds(6.895):fff --> 895ss\.fff --> 06.895 |
"ffff" |
Os dez milésimos de segundo num intervalo de tempo. Mais informações: O "ffff" especificador de formato personalizado. |
TimeSpan.Parse("0:0:6.8954321"):ffff --> 8954ss\.ffff --> 06.8954 |
"fffff" |
Os centésimos de segundo num intervalo de tempo. Mais informações: O "fffff" especificador de formato personalizado. |
TimeSpan.Parse("0:0:6.8954321"):fffff --> 89543ss\.fffff --> 06.89543 |
"ffffff" |
Os milionésimos de segundo em um intervalo de tempo. Mais informações: O "ffffff" especificador de formato personalizado. |
TimeSpan.Parse("0:0:6.8954321"):ffffff --> 895432ss\.ffffff --> 06.895432 |
"fffffff" |
Os dez milionésimos de segundo (ou os carrapatos fracionários) em um intervalo de tempo. Mais informações: O "fffffff" especificador de formato personalizado. |
TimeSpan.Parse("0:0:6.8954321"):fffffff --> 8954321ss\.fffffff --> 06.8954321 |
"F", "%F" |
Os décimos de segundo em um intervalo de tempo. Nada é exibido se o dígito for zero. Mais informações: O "F" especificador de formato personalizado. |
TimeSpan.Parse("00:00:06.32"):%F: 3TimeSpan.Parse("0:0:3.091"):ss\.F: 03. |
"FF" |
Os centésimos de segundo num intervalo de tempo. Quaisquer zeros à direita fracionários ou dois dígitos zero não estão incluídos. Mais informações: O "FF" especificador de formato personalizado. |
TimeSpan.Parse("00:00:06.329"):FF: 32TimeSpan.Parse("0:0:3.101"):ss\.FF: 03.1 |
"FFF" |
Os milissegundos em um intervalo de tempo. Quaisquer zeros à direita fracionários não estão incluídos. Mais informações: |
TimeSpan.Parse("00:00:06.3291"):FFF: 329TimeSpan.Parse("0:0:3.1009"):ss\.FFF: 03.1 |
"FFFF" |
Os dez milésimos de segundo num intervalo de tempo. Quaisquer zeros à direita fracionários não estão incluídos. Mais informações: O "FFFF" especificador de formato personalizado. |
TimeSpan.Parse("00:00:06.32917"):FFFFF: 3291TimeSpan.Parse("0:0:3.10009"):ss\.FFFF: 03.1 |
"FFFFF" |
Os centésimos de segundo num intervalo de tempo. Quaisquer zeros à direita fracionários não estão incluídos. Mais informações: O "FFFFF" especificador de formato personalizado. |
TimeSpan.Parse("00:00:06.329179"):FFFFF: 32917TimeSpan.Parse("0:0:3.100009"):ss\.FFFFF: 03.1 |
"FFFFFF" |
Os milionésimos de segundo em um intervalo de tempo. Quaisquer zeros à direita fracionários não são exibidos. Mais informações: O "FFFFFF" especificador de formato personalizado. |
TimeSpan.Parse("00:00:06.3291791"):FFFFFF: 329179TimeSpan.Parse("0:0:3.1000009"):ss\.FFFFFF: 03.1 |
"FFFFFFF" |
Os dez milhões de segundo num intervalo de tempo. Quaisquer zeros à direita fracionários ou sete zeros não são exibidos. Mais informações: O "FFFFFFF" especificador de formato personalizado. |
TimeSpan.Parse("00:00:06.3291791"):FFFFFF: 3291791TimeSpan.Parse("0:0:3.1900000"):ss\.FFFFFF: 03.19 |
| 'String' | Delimitador de cadeia de caracteres literal. Mais informações: Outros caracteres. |
new TimeSpan(14, 32, 17):hh':'mm':'ss --> "14:32:17" |
| \ | O personagem de fuga. Mais informações: Outros caracteres. |
new TimeSpan(14, 32, 17):hh\:mm\:ss --> "14:32:17" |
| Qualquer outro personagem | Qualquer outro caractere sem escape é interpretado como um especificador de formato personalizado. Mais informações: Outros caracteres. |
new TimeSpan(14, 32, 17):hh\:mm\:ss --> "14:32:17" |
O "d" especificador de formato personalizado
O "d" especificador de formato personalizado gera o valor da TimeSpan.Days propriedade, que representa o número de dias inteiros no intervalo de tempo. Ele produz o número total de dias em um valor TimeSpan, mesmo que o valor tenha mais de um dígito. Se o valor da propriedade TimeSpan.Days for zero, o especificador produz "0".
Se o "d" especificador de formato personalizado for usado sozinho, especifique "%d" para que não seja interpretado como uma cadeia de formato padrão. O exemplo a seguir fornece uma ilustração.
TimeSpan ts1 = new TimeSpan(16, 4, 3, 17, 250);
Console.WriteLine(ts1.ToString("%d"));
// Displays 16
Dim ts As New TimeSpan(16, 4, 3, 17, 250)
Console.WriteLine(ts.ToString("%d"))
' Displays 16
O exemplo seguinte ilustra o uso do "d" especificador de formato personalizado.
TimeSpan ts2 = new TimeSpan(4, 3, 17);
Console.WriteLine(ts2.ToString(@"d\.hh\:mm\:ss"));
TimeSpan ts3 = new TimeSpan(3, 4, 3, 17);
Console.WriteLine(ts3.ToString(@"d\.hh\:mm\:ss"));
// The example displays the following output:
// 0.04:03:17
// 3.04:03:17
Dim ts2 As New TimeSpan(4, 3, 17)
Console.WriteLine(ts2.ToString("d\.hh\:mm\:ss"))
Dim ts3 As New TimeSpan(3, 4, 3, 17)
Console.WriteLine(ts3.ToString("d\.hh\:mm\:ss"))
' The example displays the following output:
' 0.04:03:17
' 3.04:03:17
Os "dd"-"dddddddd" especificadores de formato personalizados
Os "dd"especificadores de formato personalizado , "ddd", "dddddd""ddddd""ddddddd""dddd""dddddddd" e o formato personalizado produzem o valor da TimeSpan.Days propriedade, que representa o número de dias inteiros no intervalo de tempo.
A cadeia de saída inclui um número mínimo de dígitos especificados pelo número de d caracteres no especificador de formato, e é preenchida com zeros à esquerda conforme necessário. Se os dígitos no número de dias excederem o número de d caracteres no especificador de formato, o número total de dias é apresentado na cadeia de resultados.
O exemplo a seguir usa esses especificadores de formato para exibir a representação de cadeia de caracteres de dois valores TimeSpan. O valor do componente dias do primeiro intervalo de tempo é zero; O valor do componente Dias do segundo é 365.
TimeSpan ts1 = new TimeSpan(0, 23, 17, 47);
TimeSpan ts2 = new TimeSpan(365, 21, 19, 45);
for (int ctr = 2; ctr <= 8; ctr++)
{
string fmt = new String('d', ctr) + @"\.hh\:mm\:ss";
Console.WriteLine($"{fmt} --> {ts1.ToString(fmt)}");
Console.WriteLine($"{fmt} --> {ts2.ToString(fmt)}");
Console.WriteLine();
}
// The example displays the following output:
// dd\.hh\:mm\:ss --> 00.23:17:47
// dd\.hh\:mm\:ss --> 365.21:19:45
//
// ddd\.hh\:mm\:ss --> 000.23:17:47
// ddd\.hh\:mm\:ss --> 365.21:19:45
//
// dddd\.hh\:mm\:ss --> 0000.23:17:47
// dddd\.hh\:mm\:ss --> 0365.21:19:45
//
// ddddd\.hh\:mm\:ss --> 00000.23:17:47
// ddddd\.hh\:mm\:ss --> 00365.21:19:45
//
// dddddd\.hh\:mm\:ss --> 000000.23:17:47
// dddddd\.hh\:mm\:ss --> 000365.21:19:45
//
// ddddddd\.hh\:mm\:ss --> 0000000.23:17:47
// ddddddd\.hh\:mm\:ss --> 0000365.21:19:45
//
// dddddddd\.hh\:mm\:ss --> 00000000.23:17:47
// dddddddd\.hh\:mm\:ss --> 00000365.21:19:45
Dim ts1 As New TimeSpan(0, 23, 17, 47)
Dim ts2 As New TimeSpan(365, 21, 19, 45)
For ctr As Integer = 2 To 8
Dim fmt As String = New String("d"c, ctr) + "\.hh\:mm\:ss"
Console.WriteLine("{0} --> {1:" + fmt + "}", fmt, ts1)
Console.WriteLine("{0} --> {1:" + fmt + "}", fmt, ts2)
Console.WriteLine()
Next
' The example displays the following output:
' dd\.hh\:mm\:ss --> 00.23:17:47
' dd\.hh\:mm\:ss --> 365.21:19:45
'
' ddd\.hh\:mm\:ss --> 000.23:17:47
' ddd\.hh\:mm\:ss --> 365.21:19:45
'
' dddd\.hh\:mm\:ss --> 0000.23:17:47
' dddd\.hh\:mm\:ss --> 0365.21:19:45
'
' ddddd\.hh\:mm\:ss --> 00000.23:17:47
' ddddd\.hh\:mm\:ss --> 00365.21:19:45
'
' dddddd\.hh\:mm\:ss --> 000000.23:17:47
' dddddd\.hh\:mm\:ss --> 000365.21:19:45
'
' ddddddd\.hh\:mm\:ss --> 0000000.23:17:47
' ddddddd\.hh\:mm\:ss --> 0000365.21:19:45
'
' dddddddd\.hh\:mm\:ss --> 00000000.23:17:47
' dddddddd\.hh\:mm\:ss --> 00000365.21:19:45
O "h" especificador de formato personalizado
O "h" especificador de formato personalizado gera o valor da TimeSpan.Hours propriedade, que representa o número de horas inteiras no intervalo de tempo que não é contado como parte do seu componente diário. Ele retorna um valor de cadeia de caracteres de um dígito se o valor da propriedade TimeSpan.Hours for de 0 a 9 e retorna um valor de cadeia de caracteres de dois dígitos se o valor da propriedade TimeSpan.Hours variar de 10 a 23.
Se o "h" especificador de formato personalizado for usado sozinho, especifique "%h" para que não seja interpretado como uma cadeia de formato padrão. O exemplo a seguir fornece uma ilustração.
TimeSpan ts = new TimeSpan(3, 42, 0);
Console.WriteLine($"{ts:%h} hours {ts:%m} minutes");
// The example displays the following output:
// 3 hours 42 minutes
Dim ts As New TimeSpan(3, 42, 0)
Console.WriteLine("{0:%h} hours {0:%m} minutes", ts)
' The example displays the following output:
' 3 hours 42 minutes
Normalmente, em uma operação de análise, uma cadeia de caracteres de entrada que inclui apenas um único número é interpretada como o número de dias. Pode usar o "%h" especificador de formato personalizado para interpretar a cadeia numérica como o número de horas. O exemplo a seguir fornece uma ilustração.
string value = "8";
TimeSpan interval;
if (TimeSpan.TryParseExact(value, "%h", null, out interval))
Console.WriteLine(interval.ToString("c"));
else
Console.WriteLine($"Unable to convert '{value}' to a time interval");
// The example displays the following output:
// 08:00:00
Dim value As String = "8"
Dim interval As TimeSpan
If TimeSpan.TryParseExact(value, "%h", Nothing, interval) Then
Console.WriteLine(interval.ToString("c"))
Else
Console.WriteLine("Unable to convert '{0}' to a time interval",
value)
End If
' The example displays the following output:
' 08:00:00
O exemplo seguinte ilustra o uso do "h" especificador de formato personalizado.
TimeSpan ts1 = new TimeSpan(14, 3, 17);
Console.WriteLine(ts1.ToString(@"d\.h\:mm\:ss"));
TimeSpan ts2 = new TimeSpan(3, 4, 3, 17);
Console.WriteLine(ts2.ToString(@"d\.h\:mm\:ss"));
// The example displays the following output:
// 0.14:03:17
// 3.4:03:17
Dim ts1 As New TimeSpan(14, 3, 17)
Console.WriteLine(ts1.ToString("d\.h\:mm\:ss"))
Dim ts2 As New TimeSpan(3, 4, 3, 17)
Console.WriteLine(ts2.ToString("d\.h\:mm\:ss"))
' The example displays the following output:
' 0.14:03:17
' 3.4:03:17
O "hh" especificador de formato personalizado
O "hh" especificador de formato personalizado gera o valor da TimeSpan.Hours propriedade, que representa o número de horas inteiras no intervalo de tempo que não é contado como parte do seu componente diário. Para valores de 0 a 9, a cadeia de caracteres de saída inclui um zero à esquerda.
Normalmente, em uma operação de análise, uma cadeia de caracteres de entrada que inclui apenas um único número é interpretada como o número de dias. Pode usar o "hh" especificador de formato personalizado para interpretar a cadeia numérica como o número de horas. O exemplo a seguir fornece uma ilustração.
string value = "08";
TimeSpan interval;
if (TimeSpan.TryParseExact(value, "hh", null, out interval))
Console.WriteLine(interval.ToString("c"));
else
Console.WriteLine($"Unable to convert '{value}' to a time interval");
// The example displays the following output:
// 08:00:00
Dim value As String = "08"
Dim interval As TimeSpan
If TimeSpan.TryParseExact(value, "hh", Nothing, interval) Then
Console.WriteLine(interval.ToString("c"))
Else
Console.WriteLine("Unable to convert '{0}' to a time interval",
value)
End If
' The example displays the following output:
' 08:00:00
O exemplo seguinte ilustra o uso do "hh" especificador de formato personalizado.
TimeSpan ts1 = new TimeSpan(14, 3, 17);
Console.WriteLine(ts1.ToString(@"d\.hh\:mm\:ss"));
TimeSpan ts2 = new TimeSpan(3, 4, 3, 17);
Console.WriteLine(ts2.ToString(@"d\.hh\:mm\:ss"));
// The example displays the following output:
// 0.14:03:17
// 3.04:03:17
Dim ts1 As New TimeSpan(14, 3, 17)
Console.WriteLine(ts1.ToString("d\.hh\:mm\:ss"))
Dim ts2 As New TimeSpan(3, 4, 3, 17)
Console.WriteLine(ts2.ToString("d\.hh\:mm\:ss"))
' The example displays the following output:
' 0.14:03:17
' 3.04:03:17
O "m" especificador de formato personalizado
O "m" especificador de formato personalizado gera o valor da TimeSpan.Minutes propriedade, que representa o número de minutos inteiros no intervalo de tempo que não é contado como parte do seu componente diário. Ele retorna um valor de cadeia de caracteres de um dígito se o valor da propriedade TimeSpan.Minutes for de 0 a 9 e retorna um valor de cadeia de caracteres de dois dígitos se o valor da propriedade TimeSpan.Minutes variar de 10 a 59.
Se o "m" especificador de formato personalizado for usado sozinho, especifique "%m" para que não seja interpretado como uma cadeia de formato padrão. O exemplo a seguir fornece uma ilustração.
TimeSpan ts = new TimeSpan(3, 42, 0);
Console.WriteLine($"{ts:%h} hours {ts:%m} minutes");
// The example displays the following output:
// 3 hours 42 minutes
Dim ts As New TimeSpan(3, 42, 0)
Console.WriteLine("{0:%h} hours {0:%m} minutes", ts)
' The example displays the following output:
' 3 hours 42 minutes
Normalmente, em uma operação de análise, uma cadeia de caracteres de entrada que inclui apenas um único número é interpretada como o número de dias. Podes usar o "%m" especificador de formato personalizado para interpretar a cadeia numérica como o número de minutos. O exemplo a seguir fornece uma ilustração.
string value = "3";
TimeSpan interval;
if (TimeSpan.TryParseExact(value, "%m", null, out interval))
Console.WriteLine(interval.ToString("c"));
else
Console.WriteLine($"Unable to convert '{value}' to a time interval");
// The example displays the following output:
// 00:03:00
Dim value As String = "3"
Dim interval As TimeSpan
If TimeSpan.TryParseExact(value, "%m", Nothing, interval) Then
Console.WriteLine(interval.ToString("c"))
Else
Console.WriteLine("Unable to convert '{0}' to a time interval",
value)
End If
' The example displays the following output:
' 00:03:00
O exemplo seguinte ilustra o uso do "m" especificador de formato personalizado.
TimeSpan ts1 = new TimeSpan(0, 6, 32);
Console.WriteLine($"{ts1:m\\:ss} minutes");
TimeSpan ts2 = new TimeSpan(3, 4, 3, 17);
Console.WriteLine($"Elapsed time: {ts2:m\\:ss}");
// The example displays the following output:
// 6:32 minutes
// Elapsed time: 18:44
Dim ts1 As New TimeSpan(0, 6, 32)
Console.WriteLine("{0:m\:ss} minutes", ts1)
Dim ts2 As New TimeSpan(0, 18, 44)
Console.WriteLine("Elapsed time: {0:m\:ss}", ts2)
' The example displays the following output:
' 6:32 minutes
' Elapsed time: 18:44
O "mm" especificador de formato personalizado
O "mm" especificador de formato personalizado gera o valor da TimeSpan.Minutes propriedade, que representa o número de minutos inteiros no intervalo de tempo que não está incluído como parte do seu componente de horas ou dias. Para valores de 0 a 9, a cadeia de caracteres de saída inclui um zero à esquerda.
Normalmente, em uma operação de análise, uma cadeia de caracteres de entrada que inclui apenas um único número é interpretada como o número de dias. Podes usar o "mm" especificador de formato personalizado para interpretar a cadeia numérica como o número de minutos. O exemplo a seguir fornece uma ilustração.
string value = "07";
TimeSpan interval;
if (TimeSpan.TryParseExact(value, "mm", null, out interval))
Console.WriteLine(interval.ToString("c"));
else
Console.WriteLine($"Unable to convert '{value}' to a time interval");
// The example displays the following output:
// 00:07:00
Dim value As String = "05"
Dim interval As TimeSpan
If TimeSpan.TryParseExact(value, "mm", Nothing, interval) Then
Console.WriteLine(interval.ToString("c"))
Else
Console.WriteLine("Unable to convert '{0}' to a time interval",
value)
End If
' The example displays the following output:
' 00:05:00
O exemplo seguinte ilustra o uso do "mm" especificador de formato personalizado.
TimeSpan departTime = new TimeSpan(11, 12, 00);
TimeSpan arriveTime = new TimeSpan(16, 28, 00);
Console.WriteLine($"Travel time: {arriveTime - departTime:hh\\:mm}");
// The example displays the following output:
// Travel time: 05:16
Dim departTime As New TimeSpan(11, 12, 00)
Dim arriveTime As New TimeSpan(16, 28, 00)
Console.WriteLine("Travel time: {0:hh\:mm}",
arriveTime - departTime)
' The example displays the following output:
' Travel time: 05:16
O "s" especificador de formato personalizado
O "s" especificador de formato personalizado gera o valor da TimeSpan.Seconds propriedade, que representa o número de segundos inteiros no intervalo de tempo que não está incluído como parte do seu componente de horas, dias ou minutos. Ele retorna um valor de cadeia de caracteres de um dígito se o valor da propriedade TimeSpan.Seconds for de 0 a 9 e retorna um valor de cadeia de caracteres de dois dígitos se o valor da propriedade TimeSpan.Seconds variar de 10 a 59.
Se o "s" especificador de formato personalizado for usado sozinho, especifique "%s" para que não seja interpretado como uma cadeia de formato padrão. O exemplo a seguir fornece uma ilustração.
TimeSpan ts = TimeSpan.FromSeconds(12.465);
Console.WriteLine(ts.ToString("%s"));
// The example displays the following output:
// 12
Dim ts As TimeSpan = TimeSpan.FromSeconds(12.465)
Console.WriteLine(ts.ToString("%s"))
' The example displays the following output:
' 12
Normalmente, em uma operação de análise, uma cadeia de caracteres de entrada que inclui apenas um único número é interpretada como o número de dias. Podes usar o "%s" especificador de formato personalizado para interpretar a cadeia numérica como o número de segundos. O exemplo a seguir fornece uma ilustração.
string value = "9";
TimeSpan interval;
if (TimeSpan.TryParseExact(value, "%s", null, out interval))
Console.WriteLine(interval.ToString("c"));
else
Console.WriteLine($"Unable to convert '{value}' to a time interval");
// The example displays the following output:
// 00:00:09
Dim value As String = "9"
Dim interval As TimeSpan
If TimeSpan.TryParseExact(value, "%s", Nothing, interval) Then
Console.WriteLine(interval.ToString("c"))
Else
Console.WriteLine("Unable to convert '{0}' to a time interval",
value)
End If
' The example displays the following output:
' 00:00:09
O exemplo seguinte ilustra o uso do "s" especificador de formato personalizado.
TimeSpan startTime = new TimeSpan(0, 12, 30, 15, 0);
TimeSpan endTime = new TimeSpan(0, 12, 30, 21, 3);
Console.WriteLine(@"Elapsed Time: {0:s\:fff} seconds",
endTime - startTime);
// The example displays the following output:
// Elapsed Time: 6:003 seconds
Dim startTime As New TimeSpan(0, 12, 30, 15, 0)
Dim endTime As New TimeSpan(0, 12, 30, 21, 3)
Console.WriteLine("Elapsed Time: {0:s\:fff} seconds",
endTime - startTime)
' The example displays the following output:
' Elapsed Time: 6:003 seconds
O "ss" especificador de formato personalizado
O "ss" especificador de formato personalizado gera o valor da TimeSpan.Seconds propriedade, que representa o número de segundos inteiros no intervalo de tempo que não está incluído como parte do seu componente de horas, dias ou minutos. Para valores de 0 a 9, a cadeia de caracteres de saída inclui um zero à esquerda.
Normalmente, em uma operação de análise, uma cadeia de caracteres de entrada que inclui apenas um único número é interpretada como o número de dias. Podes usar o "ss" especificador de formato personalizado para interpretar a cadeia numérica como o número de segundos. O exemplo a seguir fornece uma ilustração.
string[] values = { "49", "9", "06" };
TimeSpan interval;
foreach (string value in values)
{
if (TimeSpan.TryParseExact(value, "ss", null, out interval))
Console.WriteLine(interval.ToString("c"));
else
Console.WriteLine($"Unable to convert '{value}' to a time interval");
}
// The example displays the following output:
// 00:00:49
// Unable to convert '9' to a time interval
// 00:00:06
Dim values() As String = {"49", "9", "06"}
Dim interval As TimeSpan
For Each value As String In values
If TimeSpan.TryParseExact(value, "ss", Nothing, interval) Then
Console.WriteLine(interval.ToString("c"))
Else
Console.WriteLine("Unable to convert '{0}' to a time interval",
value)
End If
Next
' The example displays the following output:
' 00:00:49
' Unable to convert '9' to a time interval
' 00:00:06
O exemplo seguinte ilustra o uso do "ss" especificador de formato personalizado.
TimeSpan interval1 = TimeSpan.FromSeconds(12.60);
Console.WriteLine(interval1.ToString(@"ss\.fff"));
TimeSpan interval2 = TimeSpan.FromSeconds(6.485);
Console.WriteLine(interval2.ToString(@"ss\.fff"));
// The example displays the following output:
// 12.600
// 06.485
Dim interval1 As TimeSpan = TimeSpan.FromSeconds(12.60)
Console.WriteLine(interval1.ToString("ss\.fff"))
Dim interval2 As TimeSpan = TimeSpan.FromSeconds(6.485)
Console.WriteLine(interval2.ToString("ss\.fff"))
' The example displays the following output:
' 12.600
' 06.485
O "f" especificador de formato personalizado
O "f" especificador de formato personalizado produz os décimos de segundo num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a cadeia de caracteres de entrada deve conter exatamente um dígito fracionário.
Se o "f" especificador de formato personalizado for usado sozinho, especifique "%f" para que não seja interpretado como uma cadeia de formato padrão.
O exemplo seguinte utiliza o "f" especificador de formato personalizado para mostrar os décimos de segundo num TimeSpan valor.
"f" é usado primeiro como único especificador de formato, e depois combinado com o "s" especificador numa cadeia de formatos personalizada.
TimeSpan ts = new TimeSpan(1003498765432);
string fmt;
Console.WriteLine(ts.ToString("c"));
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new string('f', ctr);
if (fmt.Length == 1) fmt = "%" + fmt;
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = $"s\\.{new string('f', ctr)}";
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
// The example displays the following output:
// %f: 8
// ff: 87
// fff: 876
// ffff: 8765
// fffff: 87654
// ffffff: 876543
// fffffff: 8765432
//
// s\.f: 29.8
// s\.ff: 29.87
// s\.fff: 29.876
// s\.ffff: 29.8765
// s\.fffff: 29.87654
// s\.ffffff: 29.876543
// s\.fffffff: 29.8765432
Dim ts As New TimeSpan(1003498765432)
Dim fmt As String
Console.WriteLine(ts.ToString("c"))
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
If fmt.Length = 1 Then fmt = "%" + fmt
Console.WriteLine("{0,10}: {1:" + fmt + "}", fmt, ts)
Next
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
Console.WriteLine("{0,10}: {1:s\." + fmt + "}", "s\." + fmt, ts)
Next
' The example displays the following output:
' %f: 8
' ff: 87
' fff: 876
' ffff: 8765
' fffff: 87654
' ffffff: 876543
' fffffff: 8765432
'
' s\.f: 29.8
' s\.ff: 29.87
' s\.fff: 29.876
' s\.ffff: 29.8765
' s\.fffff: 29.87654
' s\.ffffff: 29.876543
' s\.fffffff: 29.8765432
O "ff" especificador de formato personalizado
O "ff" especificador de formato personalizado produz os centésimos de segundo num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a cadeia de caracteres de entrada deve conter exatamente dois dígitos fracionários.
O exemplo seguinte utiliza o "ff" especificador de formato personalizado para mostrar os centésimos de segundo num TimeSpan valor.
"ff" é usado primeiro como único especificador de formato, e depois combinado com o "s" especificador numa cadeia de formatos personalizada.
TimeSpan ts = new TimeSpan(1003498765432);
string fmt;
Console.WriteLine(ts.ToString("c"));
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new string('f', ctr);
if (fmt.Length == 1) fmt = "%" + fmt;
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = $"s\\.{new string('f', ctr)}";
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
// The example displays the following output:
// %f: 8
// ff: 87
// fff: 876
// ffff: 8765
// fffff: 87654
// ffffff: 876543
// fffffff: 8765432
//
// s\.f: 29.8
// s\.ff: 29.87
// s\.fff: 29.876
// s\.ffff: 29.8765
// s\.fffff: 29.87654
// s\.ffffff: 29.876543
// s\.fffffff: 29.8765432
Dim ts As New TimeSpan(1003498765432)
Dim fmt As String
Console.WriteLine(ts.ToString("c"))
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
If fmt.Length = 1 Then fmt = "%" + fmt
Console.WriteLine("{0,10}: {1:" + fmt + "}", fmt, ts)
Next
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
Console.WriteLine("{0,10}: {1:s\." + fmt + "}", "s\." + fmt, ts)
Next
' The example displays the following output:
' %f: 8
' ff: 87
' fff: 876
' ffff: 8765
' fffff: 87654
' ffffff: 876543
' fffffff: 8765432
'
' s\.f: 29.8
' s\.ff: 29.87
' s\.fff: 29.876
' s\.ffff: 29.8765
' s\.fffff: 29.87654
' s\.ffffff: 29.876543
' s\.fffffff: 29.8765432
O "fff" especificador de formato personalizado
O "fff" especificador de formato personalizado (com três f caracteres) gera os milissegundos num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a cadeia de caracteres de entrada deve conter exatamente três dígitos fracionários.
O exemplo seguinte utiliza o "fff" especificador de formato personalizado para mostrar os milissegundos num TimeSpan valor.
"fff" é usado primeiro como único especificador de formato, e depois combinado com o "s" especificador numa cadeia de formatos personalizada.
TimeSpan ts = new TimeSpan(1003498765432);
string fmt;
Console.WriteLine(ts.ToString("c"));
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new string('f', ctr);
if (fmt.Length == 1) fmt = "%" + fmt;
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = $"s\\.{new string('f', ctr)}";
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
// The example displays the following output:
// %f: 8
// ff: 87
// fff: 876
// ffff: 8765
// fffff: 87654
// ffffff: 876543
// fffffff: 8765432
//
// s\.f: 29.8
// s\.ff: 29.87
// s\.fff: 29.876
// s\.ffff: 29.8765
// s\.fffff: 29.87654
// s\.ffffff: 29.876543
// s\.fffffff: 29.8765432
Dim ts As New TimeSpan(1003498765432)
Dim fmt As String
Console.WriteLine(ts.ToString("c"))
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
If fmt.Length = 1 Then fmt = "%" + fmt
Console.WriteLine("{0,10}: {1:" + fmt + "}", fmt, ts)
Next
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
Console.WriteLine("{0,10}: {1:s\." + fmt + "}", "s\." + fmt, ts)
Next
' The example displays the following output:
' %f: 8
' ff: 87
' fff: 876
' ffff: 8765
' fffff: 87654
' ffffff: 876543
' fffffff: 8765432
'
' s\.f: 29.8
' s\.ff: 29.87
' s\.fff: 29.876
' s\.ffff: 29.8765
' s\.fffff: 29.87654
' s\.ffffff: 29.876543
' s\.fffffff: 29.8765432
O "ffff" especificador de formato personalizado
O "ffff" especificador de formato personalizado (com quatro f caracteres) gera os décimos de milésimos de segundo num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a cadeia de caracteres de entrada deve conter exatamente quatro dígitos fracionários.
O exemplo seguinte utiliza o "ffff" especificador de formato personalizado para mostrar as décimas de milésimos de segundo num TimeSpan valor.
"ffff" é usado primeiro como único especificador de formato, e depois combinado com o "s" especificador numa cadeia de formatos personalizada.
TimeSpan ts = new TimeSpan(1003498765432);
string fmt;
Console.WriteLine(ts.ToString("c"));
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new string('f', ctr);
if (fmt.Length == 1) fmt = "%" + fmt;
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = $"s\\.{new string('f', ctr)}";
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
// The example displays the following output:
// %f: 8
// ff: 87
// fff: 876
// ffff: 8765
// fffff: 87654
// ffffff: 876543
// fffffff: 8765432
//
// s\.f: 29.8
// s\.ff: 29.87
// s\.fff: 29.876
// s\.ffff: 29.8765
// s\.fffff: 29.87654
// s\.ffffff: 29.876543
// s\.fffffff: 29.8765432
Dim ts As New TimeSpan(1003498765432)
Dim fmt As String
Console.WriteLine(ts.ToString("c"))
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
If fmt.Length = 1 Then fmt = "%" + fmt
Console.WriteLine("{0,10}: {1:" + fmt + "}", fmt, ts)
Next
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
Console.WriteLine("{0,10}: {1:s\." + fmt + "}", "s\." + fmt, ts)
Next
' The example displays the following output:
' %f: 8
' ff: 87
' fff: 876
' ffff: 8765
' fffff: 87654
' ffffff: 876543
' fffffff: 8765432
'
' s\.f: 29.8
' s\.ff: 29.87
' s\.fff: 29.876
' s\.ffff: 29.8765
' s\.fffff: 29.87654
' s\.ffffff: 29.876543
' s\.fffffff: 29.8765432
O "fffff" especificador de formato personalizado
O "fffff" especificador de formato personalizado (com cinco f caracteres) produz os centésimos de milésimos de segundo num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a cadeia de caracteres de entrada deve conter exatamente cinco dígitos fracionários.
O exemplo seguinte utiliza o "fffff" especificador de formato personalizado para mostrar os centésimos de milésimos de segundo num TimeSpan valor.
"fffff" é usado primeiro como único especificador de formato, e depois combinado com o "s" especificador numa cadeia de formatos personalizada.
TimeSpan ts = new TimeSpan(1003498765432);
string fmt;
Console.WriteLine(ts.ToString("c"));
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new string('f', ctr);
if (fmt.Length == 1) fmt = "%" + fmt;
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = $"s\\.{new string('f', ctr)}";
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
// The example displays the following output:
// %f: 8
// ff: 87
// fff: 876
// ffff: 8765
// fffff: 87654
// ffffff: 876543
// fffffff: 8765432
//
// s\.f: 29.8
// s\.ff: 29.87
// s\.fff: 29.876
// s\.ffff: 29.8765
// s\.fffff: 29.87654
// s\.ffffff: 29.876543
// s\.fffffff: 29.8765432
Dim ts As New TimeSpan(1003498765432)
Dim fmt As String
Console.WriteLine(ts.ToString("c"))
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
If fmt.Length = 1 Then fmt = "%" + fmt
Console.WriteLine("{0,10}: {1:" + fmt + "}", fmt, ts)
Next
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
Console.WriteLine("{0,10}: {1:s\." + fmt + "}", "s\." + fmt, ts)
Next
' The example displays the following output:
' %f: 8
' ff: 87
' fff: 876
' ffff: 8765
' fffff: 87654
' ffffff: 876543
' fffffff: 8765432
'
' s\.f: 29.8
' s\.ff: 29.87
' s\.fff: 29.876
' s\.ffff: 29.8765
' s\.fffff: 29.87654
' s\.ffffff: 29.876543
' s\.fffffff: 29.8765432
O "ffffff" especificador de formato personalizado
O "ffffff" especificador de formato personalizado (com seis f caracteres) gera os milionésimos de segundo num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a cadeia de caracteres de entrada deve conter exatamente seis dígitos fracionários.
O exemplo seguinte utiliza o "ffffff" especificador de formato personalizado para mostrar os milionésimos de segundo num TimeSpan valor. É usado primeiro como único especificador de formato, e depois combinado com o "s" especificador numa cadeia de formatos personalizada.
TimeSpan ts = new TimeSpan(1003498765432);
string fmt;
Console.WriteLine(ts.ToString("c"));
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new string('f', ctr);
if (fmt.Length == 1) fmt = "%" + fmt;
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = $"s\\.{new string('f', ctr)}";
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
// The example displays the following output:
// %f: 8
// ff: 87
// fff: 876
// ffff: 8765
// fffff: 87654
// ffffff: 876543
// fffffff: 8765432
//
// s\.f: 29.8
// s\.ff: 29.87
// s\.fff: 29.876
// s\.ffff: 29.8765
// s\.fffff: 29.87654
// s\.ffffff: 29.876543
// s\.fffffff: 29.8765432
Dim ts As New TimeSpan(1003498765432)
Dim fmt As String
Console.WriteLine(ts.ToString("c"))
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
If fmt.Length = 1 Then fmt = "%" + fmt
Console.WriteLine("{0,10}: {1:" + fmt + "}", fmt, ts)
Next
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
Console.WriteLine("{0,10}: {1:s\." + fmt + "}", "s\." + fmt, ts)
Next
' The example displays the following output:
' %f: 8
' ff: 87
' fff: 876
' ffff: 8765
' fffff: 87654
' ffffff: 876543
' fffffff: 8765432
'
' s\.f: 29.8
' s\.ff: 29.87
' s\.fff: 29.876
' s\.ffff: 29.8765
' s\.fffff: 29.87654
' s\.ffffff: 29.876543
' s\.fffffff: 29.8765432
O "fffffff" especificador de formato personalizado
O "fffffff" especificador de formato personalizado (com sete f caracteres) gera os décimos milionésimos de segundo (ou o número fracionário de ticks) num intervalo de tempo. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a cadeia de caracteres de entrada deve conter exatamente sete dígitos fracionários.
O exemplo seguinte utiliza o "fffffff" especificador de formato personalizado para mostrar o número fracionário de ticks num TimeSpan valor. É usado primeiro como único especificador de formato, e depois combinado com o "s" especificador numa cadeia de formatos personalizada.
TimeSpan ts = new TimeSpan(1003498765432);
string fmt;
Console.WriteLine(ts.ToString("c"));
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new string('f', ctr);
if (fmt.Length == 1) fmt = "%" + fmt;
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = $"s\\.{new string('f', ctr)}";
Console.WriteLine($"{fmt,10}: {ts.ToString(fmt)}");
}
// The example displays the following output:
// %f: 8
// ff: 87
// fff: 876
// ffff: 8765
// fffff: 87654
// ffffff: 876543
// fffffff: 8765432
//
// s\.f: 29.8
// s\.ff: 29.87
// s\.fff: 29.876
// s\.ffff: 29.8765
// s\.fffff: 29.87654
// s\.ffffff: 29.876543
// s\.fffffff: 29.8765432
Dim ts As New TimeSpan(1003498765432)
Dim fmt As String
Console.WriteLine(ts.ToString("c"))
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
If fmt.Length = 1 Then fmt = "%" + fmt
Console.WriteLine("{0,10}: {1:" + fmt + "}", fmt, ts)
Next
Console.WriteLine()
For ctr = 1 To 7
fmt = New String("f"c, ctr)
Console.WriteLine("{0,10}: {1:s\." + fmt + "}", "s\." + fmt, ts)
Next
' The example displays the following output:
' %f: 8
' ff: 87
' fff: 876
' ffff: 8765
' fffff: 87654
' ffffff: 876543
' fffffff: 8765432
'
' s\.f: 29.8
' s\.ff: 29.87
' s\.fff: 29.876
' s\.ffff: 29.8765
' s\.fffff: 29.87654
' s\.ffffff: 29.876543
' s\.fffffff: 29.8765432
O "F" especificador de formato personalizado
O "F" especificador de formato personalizado produz os décimos de segundo num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Se o valor dos décimos de segundo do intervalo de tempo for zero, ele não será incluído na cadeia de caracteres de resultado. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a presença dos décimos de um segundo dígito é opcional.
Se o "F" especificador de formato personalizado for usado sozinho, especifique "%F" para que não seja interpretado como uma cadeia de formato padrão.
O exemplo seguinte utiliza o "F" especificador de formato personalizado para mostrar os décimos de segundo num TimeSpan valor. Ele também usa esse especificador de formato personalizado em uma operação de análise.
Console.WriteLine("Formatting:");
TimeSpan ts1 = TimeSpan.Parse("0:0:3.669");
Console.WriteLine($"{ts1} ('%F') --> {ts1:%F}");
TimeSpan ts2 = TimeSpan.Parse("0:0:3.091");
Console.WriteLine($"{ts2} ('ss\\.F') --> {ts2:ss\\.F}");
Console.WriteLine();
Console.WriteLine("Parsing:");
string[] inputs = { "0:0:03.", "0:0:03.1", "0:0:03.12" };
string fmt = @"h\:m\:ss\.F";
TimeSpan ts3;
foreach (string input in inputs) {
if (TimeSpan.TryParseExact(input, fmt, null, out ts3))
Console.WriteLine($"{input} ('{fmt}') --> {ts3}");
else
Console.WriteLine($"Cannot parse {input} with '{fmt}'.");
}
// The example displays the following output:
// Formatting:
// 00:00:03.6690000 ('%F') --> 6
// 00:00:03.0910000 ('ss\.F') --> 03.
//
// Parsing:
// 0:0:03. ('h\:m\:ss\.F') --> 00:00:03
// 0:0:03.1 ('h\:m\:ss\.F') --> 00:00:03.1000000
// Cannot parse 0:0:03.12 with 'h\:m\:ss\.F'.
Console.WriteLine("Formatting:")
Dim ts1 As TimeSpan = TimeSpan.Parse("0:0:3.669")
Console.WriteLine("{0} ('%F') --> {0:%F}", ts1)
Dim ts2 As TimeSpan = TimeSpan.Parse("0:0:3.091")
Console.WriteLine("{0} ('ss\.F') --> {0:ss\.F}", ts2)
Console.WriteLine()
Console.WriteLine("Parsing:")
Dim inputs() As String = {"0:0:03.", "0:0:03.1", "0:0:03.12"}
Dim fmt As String = "h\:m\:ss\.F"
Dim ts3 As TimeSpan
For Each input As String In inputs
If TimeSpan.TryParseExact(input, fmt, Nothing, ts3)
Console.WriteLine("{0} ('{1}') --> {2}", input, fmt, ts3)
Else
Console.WriteLine("Cannot parse {0} with '{1}'.",
input, fmt)
End If
Next
' The example displays the following output:
' Formatting:
' 00:00:03.6690000 ('%F') --> 6
' 00:00:03.0910000 ('ss\.F') --> 03.
'
' Parsing:
' 0:0:03. ('h\:m\:ss\.F') --> 00:00:03
' 0:0:03.1 ('h\:m\:ss\.F') --> 00:00:03.1000000
' Cannot parse 0:0:03.12 with 'h\:m\:ss\.F'.
O "FF" especificador de formato personalizado
O "FF" especificador de formato personalizado produz os centésimos de segundo num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Se houver zeros fracionários à direita, eles não serão incluídos na cadeia de caracteres de resultado. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a presença dos décimos e centésimos de um segundo dígito é opcional.
O exemplo seguinte utiliza o "FF" especificador de formato personalizado para mostrar os centésimos de segundo num TimeSpan valor. Ele também usa esse especificador de formato personalizado em uma operação de análise.
Console.WriteLine("Formatting:");
TimeSpan ts1 = TimeSpan.Parse("0:0:3.697");
Console.WriteLine($"{ts1} ('FF') --> {ts1:FF}");
TimeSpan ts2 = TimeSpan.Parse("0:0:3.809");
Console.WriteLine($"{ts2} ('ss\\.FF') --> {ts2:ss\\.FF}");
Console.WriteLine();
Console.WriteLine("Parsing:");
string[] inputs = { "0:0:03.", "0:0:03.1", "0:0:03.127" };
string fmt = @"h\:m\:ss\.FF";
TimeSpan ts3;
foreach (string input in inputs) {
if (TimeSpan.TryParseExact(input, fmt, null, out ts3))
Console.WriteLine($"{input} ('{fmt}') --> {ts3}");
else
Console.WriteLine($"Cannot parse {input} with '{fmt}'.");
}
// The example displays the following output:
// Formatting:
// 00:00:03.6970000 ('FF') --> 69
// 00:00:03.8090000 ('ss\.FF') --> 03.8
//
// Parsing:
// 0:0:03. ('h\:m\:ss\.FF') --> 00:00:03
// 0:0:03.1 ('h\:m\:ss\.FF') --> 00:00:03.1000000
// Cannot parse 0:0:03.127 with 'h\:m\:ss\.FF'.
Console.WriteLine("Formatting:")
Dim ts1 As TimeSpan = TimeSpan.Parse("0:0:3.697")
Console.WriteLine("{0} ('FF') --> {0:FF}", ts1)
Dim ts2 As TimeSpan = TimeSpan.Parse("0:0:3.809")
Console.WriteLine("{0} ('ss\.FF') --> {0:ss\.FF}", ts2)
Console.WriteLine()
Console.WriteLine("Parsing:")
Dim inputs() As String = {"0:0:03.", "0:0:03.1", "0:0:03.127"}
Dim fmt As String = "h\:m\:ss\.FF"
Dim ts3 As TimeSpan
For Each input As String In inputs
If TimeSpan.TryParseExact(input, fmt, Nothing, ts3)
Console.WriteLine("{0} ('{1}') --> {2}", input, fmt, ts3)
Else
Console.WriteLine("Cannot parse {0} with '{1}'.",
input, fmt)
End If
Next
' The example displays the following output:
' Formatting:
' 00:00:03.6970000 ('FF') --> 69
' 00:00:03.8090000 ('ss\.FF') --> 03.8
'
' Parsing:
' 0:0:03. ('h\:m\:ss\.FF') --> 00:00:03
' 0:0:03.1 ('h\:m\:ss\.FF') --> 00:00:03.1000000
' Cannot parse 0:0:03.127 with 'h\:m\:ss\.FF'.
O "FFF" especificador de formato personalizado
O "FFF" especificador de formato personalizado (com três F caracteres) gera os milissegundos num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Se houver zeros fracionários à direita, eles não serão incluídos na cadeia de caracteres de resultado. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a presença dos décimos, centésimos e milésimos de um segundo dígito é opcional.
O exemplo seguinte utiliza o "FFF" especificador de formato personalizado para mostrar os milésimos de segundo num TimeSpan valor. Ele também usa esse especificador de formato personalizado em uma operação de análise.
Console.WriteLine("Formatting:");
TimeSpan ts1 = TimeSpan.Parse("0:0:3.6974");
Console.WriteLine($"{ts1} ('FFF') --> {ts1:FFF}");
TimeSpan ts2 = TimeSpan.Parse("0:0:3.8009");
Console.WriteLine($"{ts2} ('ss\\.FFF') --> {ts2:ss\\.FFF}");
Console.WriteLine();
Console.WriteLine("Parsing:");
string[] inputs = { "0:0:03.", "0:0:03.12", "0:0:03.1279" };
string fmt = @"h\:m\:ss\.FFF";
TimeSpan ts3;
foreach (string input in inputs) {
if (TimeSpan.TryParseExact(input, fmt, null, out ts3))
Console.WriteLine($"{input} ('{fmt}') --> {ts3}");
else
Console.WriteLine($"Cannot parse {input} with '{fmt}'.");
}
// The example displays the following output:
// Formatting:
// 00:00:03.6974000 ('FFF') --> 697
// 00:00:03.8009000 ('ss\.FFF') --> 03.8
//
// Parsing:
// 0:0:03. ('h\:m\:ss\.FFF') --> 00:00:03
// 0:0:03.12 ('h\:m\:ss\.FFF') --> 00:00:03.1200000
// Cannot parse 0:0:03.1279 with 'h\:m\:ss\.FFF'.
Console.WriteLine("Formatting:")
Dim ts1 As TimeSpan = TimeSpan.Parse("0:0:3.6974")
Console.WriteLine("{0} ('FFF') --> {0:FFF}", ts1)
Dim ts2 As TimeSpan = TimeSpan.Parse("0:0:3.8009")
Console.WriteLine("{0} ('ss\.FFF') --> {0:ss\.FFF}", ts2)
Console.WriteLine()
Console.WriteLine("Parsing:")
Dim inputs() As String = {"0:0:03.", "0:0:03.12", "0:0:03.1279"}
Dim fmt As String = "h\:m\:ss\.FFF"
Dim ts3 As TimeSpan
For Each input As String In inputs
If TimeSpan.TryParseExact(input, fmt, Nothing, ts3)
Console.WriteLine("{0} ('{1}') --> {2}", input, fmt, ts3)
Else
Console.WriteLine("Cannot parse {0} with '{1}'.",
input, fmt)
End If
Next
' The example displays the following output:
' Formatting:
' 00:00:03.6974000 ('FFF') --> 697
' 00:00:03.8009000 ('ss\.FFF') --> 03.8
'
' Parsing:
' 0:0:03. ('h\:m\:ss\.FFF') --> 00:00:03
' 0:0:03.12 ('h\:m\:ss\.FFF') --> 00:00:03.1200000
' Cannot parse 0:0:03.1279 with 'h\:m\:ss\.FFF'.
O "FFFF" especificador de formato personalizado
O "FFFF" especificador de formato personalizado (com quatro F caracteres) gera os décimos de milésimos de segundo num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Se houver zeros fracionários à direita, eles não serão incluídos na cadeia de caracteres de resultado. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a presença dos décimos, centésimos, milésimos e dez milésimos de um segundo dígito é opcional.
O exemplo seguinte utiliza o "FFFF" especificador de formato personalizado para mostrar as décimas de milésimos de segundo num TimeSpan valor. Também utiliza o "FFFF" especificador de formato personalizado numa operação de análise sintática.
Console.WriteLine("Formatting:");
TimeSpan ts1 = TimeSpan.Parse("0:0:3.69749");
Console.WriteLine($"{ts1} ('FFFF') --> {ts1:FFFF}");
TimeSpan ts2 = TimeSpan.Parse("0:0:3.80009");
Console.WriteLine($"{ts2} ('ss\\.FFFF') --> {ts2:ss\\.FFFF}");
Console.WriteLine();
Console.WriteLine("Parsing:");
string[] inputs = { "0:0:03.", "0:0:03.12", "0:0:03.12795" };
string fmt = @"h\:m\:ss\.FFFF";
TimeSpan ts3;
foreach (string input in inputs) {
if (TimeSpan.TryParseExact(input, fmt, null, out ts3))
Console.WriteLine($"{input} ('{fmt}') --> {ts3}");
else
Console.WriteLine($"Cannot parse {input} with '{fmt}'.");
}
// The example displays the following output:
// Formatting:
// 00:00:03.6974900 ('FFFF') --> 6974
// 00:00:03.8000900 ('ss\.FFFF') --> 03.8
//
// Parsing:
// 0:0:03. ('h\:m\:ss\.FFFF') --> 00:00:03
// 0:0:03.12 ('h\:m\:ss\.FFFF') --> 00:00:03.1200000
// Cannot parse 0:0:03.12795 with 'h\:m\:ss\.FFFF'.
Console.WriteLine("Formatting:")
Dim ts1 As TimeSpan = TimeSpan.Parse("0:0:3.69749")
Console.WriteLine("{0} ('FFFF') --> {0:FFFF}", ts1)
Dim ts2 As TimeSpan = TimeSpan.Parse("0:0:3.80009")
Console.WriteLine("{0} ('ss\.FFFF') --> {0:ss\.FFFF}", ts2)
Console.WriteLine()
Console.WriteLine("Parsing:")
Dim inputs() As String = {"0:0:03.", "0:0:03.12", "0:0:03.12795"}
Dim fmt As String = "h\:m\:ss\.FFFF"
Dim ts3 As TimeSpan
For Each input As String In inputs
If TimeSpan.TryParseExact(input, fmt, Nothing, ts3)
Console.WriteLine("{0} ('{1}') --> {2}", input, fmt, ts3)
Else
Console.WriteLine("Cannot parse {0} with '{1}'.",
input, fmt)
End If
Next
' The example displays the following output:
' Formatting:
' 00:00:03.6974900 ('FFFF') --> 6974
' 00:00:03.8000900 ('ss\.FFFF') --> 03.8
'
' Parsing:
' 0:0:03. ('h\:m\:ss\.FFFF') --> 00:00:03
' 0:0:03.12 ('h\:m\:ss\.FFFF') --> 00:00:03.1200000
' Cannot parse 0:0:03.12795 with 'h\:m\:ss\.FFFF'.
O "FFFFF" especificador de formato personalizado
O "FFFFF" especificador de formato personalizado (com cinco F caracteres) produz os centésimos de milésimos de segundo num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Se houver zeros fracionários à direita, eles não serão incluídos na cadeia de caracteres de resultado. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a presença dos décimos, centésimos, milésimos, dez milésimos e centésimos de um segundo dígito é opcional.
O exemplo seguinte utiliza o "FFFFF" especificador de formato personalizado para mostrar os centésimos de milésimos de segundo num TimeSpan valor. Também utiliza o "FFFFF" especificador de formato personalizado numa operação de análise sintática.
Console.WriteLine("Formatting:");
TimeSpan ts1 = TimeSpan.Parse("0:0:3.697497");
Console.WriteLine($"{ts1} ('FFFFF') --> {ts1:FFFFF}");
TimeSpan ts2 = TimeSpan.Parse("0:0:3.800009");
Console.WriteLine($"{ts2} ('ss\\.FFFFF') --> {ts2:ss\\.FFFFF}");
Console.WriteLine();
Console.WriteLine("Parsing:");
string[] inputs = { "0:0:03.", "0:0:03.12", "0:0:03.127956" };
string fmt = @"h\:m\:ss\.FFFFF";
TimeSpan ts3;
foreach (string input in inputs) {
if (TimeSpan.TryParseExact(input, fmt, null, out ts3))
Console.WriteLine($"{input} ('{fmt}') --> {ts3}");
else
Console.WriteLine($"Cannot parse {input} with '{fmt}'.");
}
// The example displays the following output:
// Formatting:
// 00:00:03.6974970 ('FFFFF') --> 69749
// 00:00:03.8000090 ('ss\.FFFFF') --> 03.8
//
// Parsing:
// 0:0:03. ('h\:m\:ss\.FFFF') --> 00:00:03
// 0:0:03.12 ('h\:m\:ss\.FFFF') --> 00:00:03.1200000
// Cannot parse 0:0:03.127956 with 'h\:m\:ss\.FFFF'.
Console.WriteLine("Formatting:")
Dim ts1 As TimeSpan = TimeSpan.Parse("0:0:3.697497")
Console.WriteLine("{0} ('FFFFF') --> {0:FFFFF}", ts1)
Dim ts2 As TimeSpan = TimeSpan.Parse("0:0:3.800009")
Console.WriteLine("{0} ('ss\.FFFFF') --> {0:ss\.FFFFF}", ts2)
Console.WriteLine()
Console.WriteLine("Parsing:")
Dim inputs() As String = {"0:0:03.", "0:0:03.12", "0:0:03.127956"}
Dim fmt As String = "h\:m\:ss\.FFFFF"
Dim ts3 As TimeSpan
For Each input As String In inputs
If TimeSpan.TryParseExact(input, fmt, Nothing, ts3)
Console.WriteLine("{0} ('{1}') --> {2}", input, fmt, ts3)
Else
Console.WriteLine("Cannot parse {0} with '{1}'.",
input, fmt)
End If
Next
' The example displays the following output:
' Formatting:
' 00:00:03.6974970 ('FFFFF') --> 69749
' 00:00:03.8000090 ('ss\.FFFFF') --> 03.8
'
' Parsing:
' 0:0:03. ('h\:m\:ss\.FFFF') --> 00:00:03
' 0:0:03.12 ('h\:m\:ss\.FFFF') --> 00:00:03.1200000
' Cannot parse 0:0:03.127956 with 'h\:m\:ss\.FFFF'.
O "FFFFFF" especificador de formato personalizado
O "FFFFFF" especificador de formato personalizado (com seis F caracteres) gera os milionésimos de segundo num intervalo de tempo. Em uma operação de formatação, todos os dígitos fracionários restantes são truncados. Se houver zeros fracionários à direita, eles não serão incluídos na cadeia de caracteres de resultado. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a presença dos décimos, centésimos, milésimos, dez milésimos, centésimos e milionésimos de um segundo dígito é opcional.
O exemplo seguinte utiliza o "FFFFFF" especificador de formato personalizado para mostrar os milionésimos de segundo num TimeSpan valor. Ele também usa esse especificador de formato personalizado em uma operação de análise.
Console.WriteLine("Formatting:");
TimeSpan ts1 = TimeSpan.Parse("0:0:3.6974974");
Console.WriteLine($"{ts1} ('FFFFFF') --> {ts1:FFFFFF}");
TimeSpan ts2 = TimeSpan.Parse("0:0:3.8000009");
Console.WriteLine($"{ts2} ('ss\\.FFFFFF') --> {ts2:ss\\.FFFFFF}");
Console.WriteLine();
Console.WriteLine("Parsing:");
string[] inputs = { "0:0:03.", "0:0:03.12", "0:0:03.1279569" };
string fmt = @"h\:m\:ss\.FFFFFF";
TimeSpan ts3;
foreach (string input in inputs) {
if (TimeSpan.TryParseExact(input, fmt, null, out ts3))
Console.WriteLine($"{input} ('{fmt}') --> {ts3}");
else
Console.WriteLine($"Cannot parse {input} with '{fmt}'.");
}
// The example displays the following output:
// Formatting:
// 00:00:03.6974974 ('FFFFFF') --> 697497
// 00:00:03.8000009 ('ss\.FFFFFF') --> 03.8
//
// Parsing:
// 0:0:03. ('h\:m\:ss\.FFFFFF') --> 00:00:03
// 0:0:03.12 ('h\:m\:ss\.FFFFFF') --> 00:00:03.1200000
// Cannot parse 0:0:03.1279569 with 'h\:m\:ss\.FFFFFF'.
Console.WriteLine("Formatting:")
Dim ts1 As TimeSpan = TimeSpan.Parse("0:0:3.6974974")
Console.WriteLine("{0} ('FFFFFF') --> {0:FFFFFF}", ts1)
Dim ts2 As TimeSpan = TimeSpan.Parse("0:0:3.8000009")
Console.WriteLine("{0} ('ss\.FFFFFF') --> {0:ss\.FFFFFF}", ts2)
Console.WriteLine()
Console.WriteLine("Parsing:")
Dim inputs() As String = {"0:0:03.", "0:0:03.12", "0:0:03.1279569"}
Dim fmt As String = "h\:m\:ss\.FFFFFF"
Dim ts3 As TimeSpan
For Each input As String In inputs
If TimeSpan.TryParseExact(input, fmt, Nothing, ts3)
Console.WriteLine("{0} ('{1}') --> {2}", input, fmt, ts3)
Else
Console.WriteLine("Cannot parse {0} with '{1}'.",
input, fmt)
End If
Next
' The example displays the following output:
' Formatting:
' 00:00:03.6974974 ('FFFFFF') --> 697497
' 00:00:03.8000009 ('ss\.FFFFFF') --> 03.8
'
' Parsing:
' 0:0:03. ('h\:m\:ss\.FFFFFF') --> 00:00:03
' 0:0:03.12 ('h\:m\:ss\.FFFFFF') --> 00:00:03.1200000
' Cannot parse 0:0:03.1279569 with 'h\:m\:ss\.FFFFFF'.
O "FFFFFFF" especificador de formato personalizado
O "FFFFFFF" especificador de formato personalizado (com sete F caracteres) gera os décimos milionésimos de segundo (ou o número fracionário de ticks) num intervalo de tempo. Se houver zeros fracionários à direita, eles não serão incluídos na cadeia de caracteres de resultado. Em uma operação de análise que chama o método TimeSpan.ParseExact ou TimeSpan.TryParseExact, a presença dos sete dígitos fracionários na cadeia de caracteres de entrada é opcional.
O exemplo seguinte utiliza o "FFFFFFF" especificador de formato personalizado para mostrar as partes fracionárias de um segundo num TimeSpan valor. Ele também usa esse especificador de formato personalizado em uma operação de análise.
Console.WriteLine("Formatting:");
TimeSpan ts1 = TimeSpan.Parse("0:0:3.6974974");
Console.WriteLine($"{ts1} ('FFFFFFF') --> {ts1:FFFFFFF}");
TimeSpan ts2 = TimeSpan.Parse("0:0:3.9500000");
Console.WriteLine($"{ts2} ('ss\\.FFFFFFF') --> {ts2:ss\\.FFFFFFF}");
Console.WriteLine();
Console.WriteLine("Parsing:");
string[] inputs = { "0:0:03.", "0:0:03.12", "0:0:03.1279569" };
string fmt = @"h\:m\:ss\.FFFFFFF";
TimeSpan ts3;
foreach (string input in inputs) {
if (TimeSpan.TryParseExact(input, fmt, null, out ts3))
Console.WriteLine($"{input} ('{fmt}') --> {ts3}");
else
Console.WriteLine($"Cannot parse {input} with '{fmt}'.");
}
// The example displays the following output:
// Formatting:
// 00:00:03.6974974 ('FFFFFFF') --> 6974974
// 00:00:03.9500000 ('ss\.FFFFFFF') --> 03.95
//
// Parsing:
// 0:0:03. ('h\:m\:ss\.FFFFFFF') --> 00:00:03
// 0:0:03.12 ('h\:m\:ss\.FFFFFFF') --> 00:00:03.1200000
// 0:0:03.1279569 ('h\:m\:ss\.FFFFFFF') --> 00:00:03.1279569
Console.WriteLine("Formatting:")
Dim ts1 As TimeSpan = TimeSpan.Parse("0:0:3.6974974")
Console.WriteLine("{0} ('FFFFFFF') --> {0:FFFFFFF}", ts1)
Dim ts2 As TimeSpan = TimeSpan.Parse("0:0:3.9500000")
Console.WriteLine("{0} ('ss\.FFFFFFF') --> {0:ss\.FFFFFFF}", ts2)
Console.WriteLine()
Console.WriteLine("Parsing:")
Dim inputs() As String = {"0:0:03.", "0:0:03.12", "0:0:03.1279569"}
Dim fmt As String = "h\:m\:ss\.FFFFFFF"
Dim ts3 As TimeSpan
For Each input As String In inputs
If TimeSpan.TryParseExact(input, fmt, Nothing, ts3)
Console.WriteLine("{0} ('{1}') --> {2}", input, fmt, ts3)
Else
Console.WriteLine("Cannot parse {0} with '{1}'.",
input, fmt)
End If
Next
' The example displays the following output:
' Formatting:
' 00:00:03.6974974 ('FFFFFFF') --> 6974974
' 00:00:03.9500000 ('ss\.FFFFFFF') --> 03.95
'
' Parsing:
' 0:0:03. ('h\:m\:ss\.FFFFFFF') --> 00:00:03
' 0:0:03.12 ('h\:m\:ss\.FFFFFFF') --> 00:00:03.1200000
' 0:0:03.1279569 ('h\:m\:ss\.FFFFFFF') --> 00:00:03.1279569
Outros personagens
Qualquer outro caractere sem escape em uma cadeia de caracteres de formato, incluindo um caractere de espaço em branco, é interpretado como um especificador de formato personalizado. Na maioria dos casos, a presença de qualquer outro caractere não escapado resulta em um FormatException.
Há duas maneiras de incluir um caractere literal em uma cadeia de caracteres de formato:
Coloque-o entre aspas simples (o delimitador de cadeia de caracteres literal).
Preceda-o com uma barra invertida ("\"), que é interpretada como um caráter de fuga. Isso significa que, em C#, a cadeia de caracteres de formato deve ser @-quoted ou o caractere literal deve ser precedido por uma barra invertida adicional.
Em alguns casos, talvez seja necessário usar a lógica condicional para incluir um literal com escape em uma cadeia de caracteres de formato. O exemplo a seguir usa lógica condicional para incluir um símbolo de sinal para intervalos de tempo negativos.
using System; public class Example { public static void Main() { TimeSpan result = new DateTime(2010, 01, 01) - DateTime.Now; String fmt = (result < TimeSpan.Zero ? "\\-" : "") + "dd\\.hh\\:mm"; Console.WriteLine(result.ToString(fmt)); Console.WriteLine($"Interval: {result.ToString(fmt)}"); } } // The example displays output like the following: // -5582.12:21 // Interval: -5582.12:21Module Example Public Sub Main() Dim result As TimeSpan = New DateTime(2010, 01, 01) - Date.Now Dim fmt As String = If(result < TimeSpan.Zero, "\-", "") + "dd\.hh\:mm" Console.WriteLine(result.ToString(fmt)) Console.WriteLine("Interval: {0:" + fmt + "}", result) End Sub End Module ' The example displays output like the following: ' -1291.10:54 ' Interval: -1291.10:54
O .NET não define uma gramática para separadores em intervalos de tempo. Isso significa que os separadores entre dias e horas, horas e minutos, minutos e segundos, segundos e frações de segundo devem ser tratados como literais de caracteres em uma cadeia de caracteres de formato.
O exemplo seguinte utiliza tanto o carácter escape como a aspas simples para definir uma cadeia de formato personalizada que inclui a palavra "minutes" na cadeia de saída.
TimeSpan interval = new TimeSpan(0, 32, 45);
// Escape literal characters in a format string.
string fmt = @"mm\:ss\ \m\i\n\u\t\e\s";
Console.WriteLine(interval.ToString(fmt));
// Delimit literal characters in a format string with the ' symbol.
fmt = "mm':'ss' minutes'";
Console.WriteLine(interval.ToString(fmt));
// The example displays the following output:
// 32:45 minutes
// 32:45 minutes
Dim interval As New TimeSpan(0, 32, 45)
' Escape literal characters in a format string.
Dim fmt As String = "mm\:ss\ \m\i\n\u\t\e\s"
Console.WriteLine(interval.ToString(fmt))
' Delimit literal characters in a format string with the ' symbol.
fmt = "mm':'ss' minutes'"
Console.WriteLine(interval.ToString(fmt))
' The example displays the following output:
' 32:45 minutes
' 32:45 minutes