Tekenreeksen in aangepaste tijdspannenotatie
Een TimeSpan-notatietekenreeks definieert de tekenreeksweergave van een TimeSpan waarde die het resultaat is van een opmaakbewerking. Een tekenreeks met aangepaste notatie bestaat uit een of meer aangepaste TimeSpan opmaakaanduidingen, samen met een willekeurig aantal letterlijke tekens. Een tekenreeks die geen standaard-tijdspannotatietekenreeks is wordt geïnterpreteerd als een aangepaste TimeSpan notatietekenreeks.
Belangrijk
De aangepaste TimeSpan notatieaanduidingen bevatten geen tijdelijke aanduidingen voor scheidingstekens, zoals de symbolen die dagen scheiden van uren, uren van minuten of seconden van fractionele seconden. In plaats daarvan moeten deze symbolen als letterlijke tekenreeks in de aangepaste notatie worden opgenomen.
"dd\.hh\:mm"
definieert bijvoorbeeld een punt (.) als scheidingsteken tussen dagen en uren en een dubbele punt (:) als scheidingsteken tussen uren en minuten.
Aangepaste TimeSpan opmaakaanduidingen bevatten ook geen tekensymbool waarmee u onderscheid kunt maken tussen negatieve en positieve tijdsintervallen. Als u een tekensymbool wilt opnemen, moet u een opmaaktekenreeks maken met behulp van voorwaardelijke logica. De sectie Andere tekens bevat een voorbeeld.
De tekenreeksweergaven van TimeSpan waarden worden geproduceerd door aanroepen naar de overbelasting van de TimeSpan.ToString methode en door methoden die samengestelde opmaak ondersteunen, zoals String.Format. Zie Opmaaktypen en samengestelde opmaakvoor meer informatie. In het volgende voorbeeld ziet u het gebruik van tekenreeksen voor aangepaste opmaak in opmaakbewerkingen.
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
Aangepaste TimeSpan notatietekenreeksen worden ook gebruikt door de TimeSpan.ParseExact en TimeSpan.TryParseExact methoden om de vereiste indeling van invoerreeksen voor parseringsbewerkingen te definiëren. (Parseren converteert de tekenreeksweergave van een waarde naar die waarde.) In het volgende voorbeeld ziet u het gebruik van tekenreeksen in de standaardindeling in parseringsbewerkingen.
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
In de volgende tabel worden de aangepaste datum- en tijdnotatieaanduidingen beschreven.
Opmaakaanduiding | Beschrijving | Voorbeeld |
---|---|---|
"d", "%d" | Het aantal hele dagen in het tijdsinterval. Meer informatie: de aangepaste notatieaanduiding d. |
new TimeSpan(6, 14, 32, 17, 685): %d --> "6"d\.hh\:mm --> "6.14:32" |
"dd"-"ddddddddd" | Het aantal hele dagen in het tijdsinterval, opgevuld met voorloopnullen, indien nodig. Meer informatie: de aangepaste notatieaanduidingen dd d. |
new TimeSpan(6, 14, 32, 17, 685): ddd --> "006"dd\.hh\:mm --> "06.14:32" |
"h", "%h" | Het aantal hele uren in het tijdsinterval dat niet wordt geteld als onderdeel van dagen. Uren met één cijfer hebben geen voorloopnul. Meer informatie: de aangepaste notatieaanduiding 'h'. |
new TimeSpan(6, 14, 32, 17, 685): %h --> "14"hh\:mm --> "14:32" |
"uu" | Het aantal hele uren in het tijdsinterval dat niet wordt geteld als onderdeel van dagen. Uren met één cijfer hebben een voorloopnul. Meer informatie: De aangepaste notatieaanduiding 'uu'. |
new TimeSpan(6, 14, 32, 17, 685): hh --> "14"new TimeSpan(6, 8, 32, 17, 685): hh --> 08 |
"m", "%m" | Het aantal hele minuten in het tijdsinterval dat niet is opgenomen als onderdeel van uren of dagen. Minuten met één cijfer hebben geen voorloopnul. Meer informatie: De aangepaste notatieaanduiding 'm'. |
new TimeSpan(6, 14, 8, 17, 685): %m --> "8"h\:m --> "14:8" |
"mm" | Het aantal hele minuten in het tijdsinterval dat niet is opgenomen als onderdeel van uren of dagen. Minuten met één cijfer hebben een voorloopnul. Meer informatie: De aangepaste notatieaanduiding mm. |
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" | Het aantal hele seconden in het tijdsinterval dat niet is opgenomen als onderdeel van uren, dagen of minuten. Seconden met één cijfer hebben geen voorloopnul. Meer informatie: de aangepaste notatieaanduiding 's'. |
TimeSpan.FromSeconds(12.965) :%s --> 12s\.fff --> 12.965 |
"ss" | Het aantal hele seconden in het tijdsinterval dat niet is opgenomen als onderdeel van uren, dagen of minuten. Seconden met één cijfer hebben een voorloopnul. Meer informatie: De aangepaste notatieaanduiding 'ss'. |
TimeSpan.FromSeconds(6.965) :ss --> 06ss\.fff --> 06.965 |
"f", "%f" | De tienden van een seconde in een tijdsinterval. Meer informatie: de aangepaste notatieaanduiding 'f'. |
TimeSpan.FromSeconds(6.895) :f --> 8ss\.f --> 06,8 |
"ff" | De honderdste van een seconde in een tijdsinterval. Meer informatie: De aangepaste notatieaanduiding 'ff'. |
TimeSpan.FromSeconds(6.895) :ff --> 89ss\.ff --> 06,89 |
"fff" | De milliseconden in een tijdsinterval. Meer informatie: De aangepaste notatieaanduiding 'fff'. |
TimeSpan.FromSeconds(6.895) :fff --> 895ss\.fff --> 06.895 |
"ffff" | De tienduizendste van een seconde in een tijdsinterval. Meer informatie: De aangepaste notatieaanduiding 'ffff'. |
TimeSpan.Parse("0:0:6.8954321") :ffff --> 8954ss\.ffff --> 06.8954 |
"fffff" | De honderdduizendste van een seconde in een tijdsinterval. Meer informatie: De aangepaste notatieaanduiding fffff. |
TimeSpan.Parse("0:0:6.8954321") :fffff --> 89543ss\.fffff --> 06.89543 |
"ffffff" | De miljoenden van een seconde in een tijdsinterval. Meer informatie: De aangepaste notatieaanduiding ffffff. |
TimeSpan.Parse("0:0:6.8954321") :ffffff --> 895432ss\.ffffff --> 06.895432 |
"fffffff" | De tien miljoenste van een seconde (of de breuktekens) in een tijdsinterval. Meer informatie: de aangepaste notatieaanduiding fffffff. |
TimeSpan.Parse("0:0:6.8954321") :fffffff --> 8954321ss\.fffffff --> 06.8954321 |
"F", "%F" | De tienden van een seconde in een tijdsinterval. Er wordt niets weergegeven als het cijfer nul is. Meer informatie: de aangepaste notatieaanduiding F. |
TimeSpan.Parse("00:00:06.32") :%F : 3TimeSpan.Parse("0:0:3.091") :ss\.F : 03. |
"FF" | De honderdste van een seconde in een tijdsinterval. Eventuele breuknullen of twee nullen worden niet opgenomen. Meer informatie: De aangepaste indelingsaanduiding FF. |
TimeSpan.Parse("00:00:06.329") :FF : 32TimeSpan.Parse("0:0:3.101") :ss\.FF : 03.1 |
"FFF" | De milliseconden in een tijdsinterval. Eventuele breuknullen worden niet opgenomen. Meer informatie: |
TimeSpan.Parse("00:00:06.3291") :FFF : 329TimeSpan.Parse("0:0:3.1009") :ss\.FFF : 03.1 |
"FFFF" | De tienduizendste van een seconde in een tijdsinterval. Eventuele breuknullen worden niet opgenomen. Meer informatie: De aangepaste indelingsaanduiding FFFF. |
TimeSpan.Parse("00:00:06.32917") :FFFFF : 3291TimeSpan.Parse("0:0:3.10009") :ss\.FFFF : 03.1 |
"FFFFF" | De honderdduizendste van een seconde in een tijdsinterval. Eventuele breuknullen worden niet opgenomen. Meer informatie: De aangepaste indelingsaanduiding FFFFF. |
TimeSpan.Parse("00:00:06.329179") :FFFFF : 32917TimeSpan.Parse("0:0:3.100009") :ss\.FFFFF : 03.1 |
"FFFFFF" | De miljoenden van een seconde in een tijdsinterval. Eventuele breuknullen worden niet weergegeven. Meer informatie: de aangepaste indelingsaanduiding FFFFFF. |
TimeSpan.Parse("00:00:06.3291791") :FFFFFF : 329179TimeSpan.Parse("0:0:3.1000009") :ss\.FFFFFF : 03.1 |
"FFFFFFF" | De tien miljoenen seconden in een tijdsinterval. Eventuele breuknullen of zeven nullen worden niet weergegeven. Meer informatie: de aangepaste notatieaanduiding FFFFFFF. |
TimeSpan.Parse("00:00:06.3291791") :FFFFFF : 3291791TimeSpan.Parse("0:0:3.1900000") :ss\.FFFFFF : 03.19 |
'tekenreeks' | Letterlijk tekenreeksscheidingsteken. Meer informatie: Andere tekens. |
new TimeSpan(14, 32, 17): hh':'mm':'ss --> "14:32:17" |
\ | Het escape-teken. Meer informatie: Andere tekens. |
new TimeSpan(14, 32, 17): hh\:mm\:ss --> "14:32:17" |
Elk ander teken | Elk ander niet-gescaped teken wordt geïnterpreteerd als een aangepaste notatieaanduiding. Meer informatie: andere tekens. |
new TimeSpan(14, 32, 17): hh\:mm\:ss --> "14:32:17" |
De aangepaste notatieaanduiding 'd'
De aangepaste notatieaanduiding d voert de waarde uit van de eigenschap TimeSpan.Days, die het aantal hele dagen in het tijdsinterval aangeeft. Het volledige aantal dagen wordt uitgevoerd in een TimeSpan waarde, zelfs als de waarde meer dan één cijfer heeft. Als de waarde van de eigenschap TimeSpan.Days nul is, voert de aanduiding '0' uit.
Als de aangepaste notatieaanduiding 'd' alleen wordt gebruikt, geeft u '%d' op, zodat deze niet verkeerd wordt geïnterpreteerd als een standaardnotatietekenreeks. In het volgende voorbeeld ziet u een afbeelding.
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
In het volgende voorbeeld ziet u het gebruik van de aangepaste notatieaanduiding 'd'.
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
De aangepaste notatieaanduidingen 'dddd'-dd
De aangepaste notatieaanduidingen 'dd', 'd', 'ddd', 'dd', 'dddd' en 'dd' leveren de waarde van de eigenschap TimeSpan.Days, die het aantal hele dagen in het tijdsinterval aangeeft.
De uitvoertekenreeks bevat een minimumaantal cijfers dat is opgegeven door het aantal 'd'-tekens in de notatieaanduiding en wordt indien nodig opgevuld met voorloopnullen. Als de cijfers in het aantal dagen groter zijn dan het aantal d-tekens in de notatieaanduiding, wordt het volledige aantal dagen uitgevoerd in de resultaattekenreeks.
In het volgende voorbeeld worden deze notatieaanduidingen gebruikt om de tekenreeksweergave van twee TimeSpan waarden weer te geven. De waarde van het dagengedeelte van het eerste tijdsinterval is nul; de waarde van het dagengedeelte van de tweede is 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:" + fmt + "}");
Console.WriteLine($"{fmt} --> {ts2:" + 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
De aangepaste notatieaanduiding 'h'
De aangepaste notatieaanduiding 'h' voert de waarde uit van de eigenschap TimeSpan.Hours, die het aantal hele uren in het tijdsinterval aangeeft dat niet wordt meegeteld als onderdeel van de dag. Het retourneert een tekenreekswaarde van één cijfer als de waarde van de eigenschap TimeSpan.Hours 0 tot en met 9 is en retourneert een tekenreekswaarde van twee cijfers als de waarde van de eigenschap TimeSpan.Hours varieert van 10 tot 23.
Als de aangepaste notatieaanduiding 'h' alleen wordt gebruikt, geeft u '%h' op, zodat deze niet verkeerd wordt geïnterpreteerd als een standaardnotatietekenreeks. In het volgende voorbeeld ziet u een afbeelding.
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
Normaal gesproken wordt in een parseringsbewerking een invoertekenreeks met slechts één getal geïnterpreteerd als het aantal dagen. U kunt in plaats daarvan de aangepaste notatieaanduiding '%h' gebruiken om de numerieke tekenreeks te interpreteren als het aantal uren. In het volgende voorbeeld ziet u een afbeelding.
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
In het volgende voorbeeld ziet u het gebruik van de aangepaste notatieaanduiding 'h'.
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
De aangepaste notatieaanduiding 'uu'
De aangepaste notatieaanduiding 'uu' voert de waarde uit van de eigenschap TimeSpan.Hours, die het aantal hele uren in het tijdsinterval aangeeft dat niet wordt geteld als onderdeel van de dag. Voor waarden van 0 tot en met 9 bevat de uitvoertekenreeks een voorloopnul.
Normaal gesproken wordt in een parseringsbewerking een invoertekenreeks met slechts één getal geïnterpreteerd als het aantal dagen. U kunt in plaats daarvan de aangepaste notatieaanduiding 'uu' gebruiken om de numerieke tekenreeks te interpreteren als het aantal uren. In het volgende voorbeeld ziet u een afbeelding.
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
In het volgende voorbeeld ziet u het gebruik van de aangepaste notatieaanduiding 'hh'.
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
De aangepaste notatieaanduiding 'm'
Met de aangepaste notatieaanduiding 'm' wordt de waarde van de eigenschap TimeSpan.Minutes uitgevoerd. Dit geeft het aantal hele minuten aan in het tijdsinterval dat niet wordt meegeteld als onderdeel van de dag. Het retourneert een tekenreekswaarde van één cijfer als de waarde van de eigenschap TimeSpan.Minutes 0 tot en met 9 is en retourneert een tekenreekswaarde van twee cijfers als de waarde van de eigenschap TimeSpan.Minutes varieert van 10 tot 59.
Als de aangepaste notatieaanduiding 'm' alleen wordt gebruikt, geeft u '%m' op, zodat deze niet verkeerd wordt geïnterpreteerd als een standaardnotatietekenreeks. In het volgende voorbeeld ziet u een afbeelding.
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
Normaal gesproken wordt in een parseringsbewerking een invoertekenreeks met slechts één getal geïnterpreteerd als het aantal dagen. U kunt in plaats daarvan de aangepaste notatieaanduiding '%m' gebruiken om de numerieke tekenreeks als het aantal minuten te interpreteren. In het volgende voorbeeld ziet u een afbeelding.
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
In het volgende voorbeeld ziet u het gebruik van de aangepaste notatieaanduiding 'm'.
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
De aangepaste notatieaanduiding mm
De aangepaste notatieaanduiding mm voert de waarde uit van de eigenschap TimeSpan.Minutes, die het aantal hele minuten aangeeft in het tijdsinterval dat niet is opgenomen als onderdeel van de uren of dagen. Voor waarden van 0 tot en met 9 bevat de uitvoertekenreeks een voorloopnul.
Normaal gesproken wordt in een parseringsbewerking een invoertekenreeks met slechts één getal geïnterpreteerd als het aantal dagen. U kunt in plaats daarvan de aangepaste notatieaanduiding mm gebruiken om de numerieke tekenreeks te interpreteren als het aantal minuten. In het volgende voorbeeld ziet u een afbeelding.
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
In het volgende voorbeeld ziet u het gebruik van de aangepaste notatieaanduiding mm.
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
De aangepaste notatieaanduiding 's'
De aangepaste notatieaanduiding 's' voert de waarde uit van de eigenschap TimeSpan.Seconds, die het aantal hele seconden aangeeft in het tijdsinterval dat niet is opgenomen als onderdeel van het onderdeel uren, dagen of minuten. Het retourneert een tekenreekswaarde van één cijfer als de waarde van de eigenschap TimeSpan.Seconds 0 tot en met 9 is en retourneert een tekenreekswaarde van twee cijfers als de waarde van de eigenschap TimeSpan.Seconds varieert van 10 tot 59.
Als de aangepaste notatieaanduiding 's' alleen wordt gebruikt, geeft u '%s' op, zodat deze niet verkeerd wordt geïnterpreteerd als een standaardnotatietekenreeks. In het volgende voorbeeld ziet u een afbeelding.
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
Normaal gesproken wordt in een parseringsbewerking een invoertekenreeks met slechts één getal geïnterpreteerd als het aantal dagen. U kunt in plaats daarvan de aangepaste notatieaanduiding '%s' gebruiken om de numerieke tekenreeks te interpreteren als het aantal seconden. In het volgende voorbeeld ziet u een afbeelding.
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
In het volgende voorbeeld ziet u het gebruik van de aangepaste notatieaanduiding 's'.
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
De aangepaste notatieaanduiding 'ss'
De aangepaste notatieaanduiding 'ss' voert de waarde uit van de eigenschap TimeSpan.Seconds, die het aantal hele seconden aangeeft in het tijdsinterval dat niet is opgenomen als onderdeel van de uren, dagen of minuten. Voor waarden van 0 tot en met 9 bevat de uitvoertekenreeks een voorloopnul.
Normaal gesproken wordt in een parseringsbewerking een invoertekenreeks met slechts één getal geïnterpreteerd als het aantal dagen. U kunt in plaats daarvan de aangepaste notatieaanduiding 'ss' gebruiken om de numerieke tekenreeks te interpreteren als het aantal seconden. In het volgende voorbeeld ziet u een afbeelding.
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
In het volgende voorbeeld ziet u het gebruik van de aangepaste indelingsaanduiding 'ss'.
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
De aangepaste notatieaanduiding 'f'
De aangepaste notatieaanduiding f voert de tienden van een seconde in een tijdsinterval uit. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, moet de invoertekenreeks precies één breukcijfer bevatten.
Als de aangepaste notatieaanduiding 'f' alleen wordt gebruikt, geeft u '%f' op, zodat deze niet verkeerd wordt geïnterpreteerd als een standaardnotatietekenreeks.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding f gebruikt om de tienden van een seconde in een TimeSpan waarde weer te geven. 'f' wordt eerst gebruikt als de enige notatieaanduiding en vervolgens gecombineerd met de aanduiding 's' in een tekenreeks voor aangepaste notatie.
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("{0,10}: {1:" + fmt + "}", fmt, ts);
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new String('f', ctr);
Console.WriteLine("{0,10}: {1:s\\." + fmt + "}", "s\\." + fmt, ts);
}
// 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
De aangepaste notatieaanduiding 'ff'
De aangepaste notatieaanduiding 'ff' voert de honderdste van een seconde in een tijdsinterval uit. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, moet de invoertekenreeks exact twee breukcijferen bevatten.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding ff gebruikt om de honderdste van een seconde in een TimeSpan waarde weer te geven. 'ff' wordt eerst gebruikt als de enige notatieaanduiding en vervolgens gecombineerd met de 's'-aanduiding in een tekenreeks voor aangepaste notatie.
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("{0,10}: {1:" + fmt + "}", fmt, ts);
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new String('f', ctr);
Console.WriteLine("{0,10}: {1:s\\." + fmt + "}", "s\\." + fmt, ts);
}
// 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
De aangepaste notatieaanduiding 'fff'
De aangepaste notatieaanduiding fff (met drie 'f'-tekens) voert de milliseconden in een tijdsinterval uit. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, moet de invoertekenreeks exact drie fractionele cijfers bevatten.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding fff gebruikt om de milliseconden weer te geven in een TimeSpan waarde. 'fff' wordt eerst gebruikt als de enige notatieaanduiding en vervolgens gecombineerd met de 's'-aanduiding in een tekenreeks voor aangepaste notatie.
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("{0,10}: {1:" + fmt + "}", fmt, ts);
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new String('f', ctr);
Console.WriteLine("{0,10}: {1:s\\." + fmt + "}", "s\\." + fmt, ts);
}
// 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
De aangepaste notatieaanduiding ffff
De aangepaste notatieaanduiding ffff (met vier 'f'-tekens) voert de tienduizendste van een seconde in een tijdsinterval uit. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, moet de invoertekenreeks exact vier breukcijferen bevatten.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding ffff gebruikt om de tienduizendsten van een seconde in een TimeSpan waarde weer te geven. 'ffff' wordt eerst gebruikt als de enige notatieaanduiding en vervolgens gecombineerd met de 's'-aanduiding in een tekenreeks voor aangepaste notatie.
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("{0,10}: {1:" + fmt + "}", fmt, ts);
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new String('f', ctr);
Console.WriteLine("{0,10}: {1:s\\." + fmt + "}", "s\\." + fmt, ts);
}
// 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
De aangepaste notatieaanduiding fffff
De aangepaste notatieaanduiding fffff (met vijf 'f'-tekens) voert de honderd duizendste van een seconde in een tijdsinterval uit. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, moet de invoertekenreeks exact vijf breukcijferen bevatten.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding fffff gebruikt om de honderdduizendste van een seconde in een TimeSpan waarde weer te geven. 'fffff' wordt eerst gebruikt als de enige notatieaanduiding en vervolgens gecombineerd met de aanduiding 's' in een tekenreeks voor aangepaste notatie.
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("{0,10}: {1:" + fmt + "}", fmt, ts);
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new String('f', ctr);
Console.WriteLine("{0,10}: {1:s\\." + fmt + "}", "s\\." + fmt, ts);
}
// 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
De aangepaste notatieaanduiding ffffff
De aangepaste notatieaanduiding ffffff (met zes 'f'-tekens) levert de miljoenste van een seconde in een tijdsinterval op. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, moet de invoertekenreeks exact zes fractionele cijfers bevatten.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding ffffff gebruikt om de miljoenste van een seconde in een TimeSpan waarde weer te geven. Deze wordt eerst gebruikt als de enige notatieaanduiding en vervolgens gecombineerd met de 's'-aanduiding in een tekenreeks met aangepaste notatie.
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("{0,10}: {1:" + fmt + "}", fmt, ts);
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new String('f', ctr);
Console.WriteLine("{0,10}: {1:s\\." + fmt + "}", "s\\." + fmt, ts);
}
// 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
De aangepaste notatieaanduiding fffffff
De aangepaste notatieaanduiding fffffff (met zeven 'f'-tekens) levert de tien miljoenste van een seconde (of het fractionele aantal tikken) in een tijdsinterval op. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, moet de invoertekenreeks exact zeven fractionele cijfers bevatten.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding fffffff gebruikt om het breukaantal tikken in een TimeSpan waarde weer te geven. Deze wordt eerst gebruikt als de enige notatieaanduiding en vervolgens gecombineerd met de 's'-aanduiding in een tekenreeks met aangepaste notatie.
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("{0,10}: {1:" + fmt + "}", fmt, ts);
}
Console.WriteLine();
for (int ctr = 1; ctr <= 7; ctr++) {
fmt = new String('f', ctr);
Console.WriteLine("{0,10}: {1:s\\." + fmt + "}", "s\\." + fmt, ts);
}
// 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
De aangepaste notatieaanduiding F
De aangepaste notatieaanduiding F voert de tienden van een seconde in een tijdsinterval uit. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. Als de waarde van de tienden van een seconde van het tijdsinterval nul is, wordt deze niet opgenomen in de resultaattekenreeks. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, is de aanwezigheid van de tienden van een tweede cijfer optioneel.
Als de aangepaste notatieaanduiding 'F' alleen wordt gebruikt, geeft u '%F' op, zodat deze niet verkeerd wordt geïnterpreteerd als een standaardnotatietekenreeks.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding F gebruikt om de tienden van een seconde in een TimeSpan waarde weer te geven. Deze aangepaste notatieaanduiding wordt ook gebruikt in een parseringsbewerking.
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'.
De aangepaste notatieaanduiding FF
De aangepaste indelingsaanduiding FF voert de honderdste van een seconde in een tijdsinterval uit. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. Als er afsluitende breuknullen zijn, worden deze niet opgenomen in de resultaattekenreeks. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, is de aanwezigheid van de tiende en honderdste van een tweede cijfer optioneel.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding FF gebruikt om de honderdste van een seconde in een TimeSpan waarde weer te geven. Deze aangepaste notatieaanduiding wordt ook gebruikt in een parseringsbewerking.
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'.
De aangepaste notatieaanduiding FFF
De aangepaste notatieaanduiding FFF (met drie F-tekens) voert de milliseconden in een tijdsinterval uit. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. Als er afsluitende breuknullen zijn, worden deze niet opgenomen in de resultaattekenreeks. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, is de aanwezigheid van de tiende, honderdste en duizendde van een tweede cijfer optioneel.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding FFF gebruikt om de duizendste van een seconde in een TimeSpan waarde weer te geven. Deze aangepaste notatieaanduiding wordt ook gebruikt in een parseringsbewerking.
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'.
De aangepaste notatieaanduiding FFFF
De aangepaste notatieaanduiding FFFF (met vier F-tekens) voert de tienduizendste van een seconde in een tijdsinterval uit. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. Als er afsluitende breuknullen zijn, worden deze niet opgenomen in de resultaattekenreeks. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, is de aanwezigheid van de tienden, honderdsten, duizendden en tienduizendsten van een tweede cijfer optioneel.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding FFFF gebruikt om de tienduizendsten van een seconde in een TimeSpan waarde weer te geven. Het maakt ook gebruik van de aangepaste indelingsaanduiding FFFF in een parseerbewerking.
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'.
De aangepaste notatieaanduiding FFFFF
De aangepaste notatieaanduiding FFFFF (met vijf F-tekens) levert de honderdduizendste van een seconde in een tijdsinterval op. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. Als er afsluitende breuknullen zijn, worden deze niet opgenomen in de resultaattekenreeks. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, is de aanwezigheid van de tiende, honderdste, duizendde, tienduizendste en honderdduizendste van een tweede cijfer optioneel.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding FFFFF gebruikt om de honderdduizendste van een seconde in een TimeSpan waarde weer te geven. Het maakt ook gebruik van de aangepaste indelingsaanduiding FFFFF in een parseringsbewerking.
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'.
De aangepaste notatieaanduiding FFFFFF
De aangepaste notatieaanduiding FFFFFF (met zes F-tekens) levert de miljoenste van een seconde in een tijdsinterval op. In een opmaakbewerking worden alle resterende fractionele cijfers afgekapt. Als er afsluitende breuknullen zijn, worden deze niet opgenomen in de resultaattekenreeks. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, is de aanwezigheid van de tiende, honderdste, duizendde, tienduizendste, honderdduizendste en miljoenste van een tweede cijfer optioneel.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding FFFFFF gebruikt om de miljoenste van een seconde in een TimeSpan waarde weer te geven. Deze aangepaste notatieaanduiding wordt ook gebruikt in een parseringsbewerking.
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'.
De aangepaste notatieaanduiding FFFFFFF
De aangepaste notatieaanduiding FFFFF (met zeven 'F'-tekens) levert de tien miljoenste van een seconde (of het fractionele aantal tikken) in een tijdsinterval op. Als er afsluitende breuknullen zijn, worden deze niet opgenomen in de resultaattekenreeks. In een parseringsbewerking die de methode TimeSpan.ParseExact of TimeSpan.TryParseExact aanroept, is de aanwezigheid van de zeven fractionele cijfers in de invoertekenreeks optioneel.
In het volgende voorbeeld wordt de aangepaste notatieaanduiding FFFFFFF gebruikt om de breukdelen van een seconde in een TimeSpan waarde weer te geven. Deze aangepaste notatieaanduiding wordt ook gebruikt in een parseringsbewerking.
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
Andere tekens
Elk ander niet-gescaped teken in een notatietekenreeks, met inbegrip van een spatieteken, wordt geïnterpreteerd als een aangepaste notatieaanduiding. In de meeste gevallen resulteert de aanwezigheid van een ander ongezichtig teken in een FormatException.
Er zijn twee manieren om een letterlijk teken in een notatietekenreeks op te nemen:
Plaats deze tussen enkele aanhalingstekens (het letterlijke tekenreeksscheidingsteken).
Voorafgaan door een backslash ("\"), die wordt geïnterpreteerd als een escape-teken. Dit betekent dat in C# de notatietekenreeks moet zijn @-aangeroepen of dat het letterlijke teken moet worden voorafgegaan door een extra backslash.
In sommige gevallen moet u mogelijk voorwaardelijke logica gebruiken om een letterlijke escape-tekenreeks op te nemen in een notatietekenreeks. In het volgende voorbeeld wordt voorwaardelijke logica gebruikt om een tekensymbool op te nemen voor negatieve tijdsintervallen.
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:" + fmt + "}"); } } // The example displays output like the following: // -1291.10:54 // Interval: -1291.10:54
Module 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
.NET definieert geen grammatica voor scheidingstekens in tijdsintervallen. Dit betekent dat de scheidingstekens tussen dagen en uren, uren en minuten, minuten en seconden en seconden en breuken van een seconde allemaal moeten worden behandeld als letterlijke tekens in een notatietekenreeks.
In het volgende voorbeeld worden zowel het escape-teken als de enkele aanhalingsteken gebruikt om een aangepaste notatietekenreeks te definiëren die het woord 'minuten' in de uitvoertekenreeks bevat.
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
Zie ook
- Opmaaktypen
- standard TimeSpan Format-tekenreeksen