TimeSpan.Parse Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Konvertiert die Zeichenfolgendarstellung eines Zeitintervalls in das TimeSpan entsprechende Intervall.
Überlädt
| Name | Beschreibung |
|---|---|
| Parse(ReadOnlySpan<Char>, IFormatProvider) |
Konvertiert die Spannweitendarstellung eines Zeitintervalls in seine TimeSpan Entsprechung mithilfe der angegebenen kulturspezifischen Formatinformationen. |
| Parse(String, IFormatProvider) |
Konvertiert die Zeichenfolgendarstellung eines Zeitintervalls in seine TimeSpan Entsprechung mithilfe der angegebenen kulturspezifischen Formatinformationen. |
| Parse(String) |
Konvertiert die Zeichenfolgendarstellung eines Zeitintervalls in das TimeSpan entsprechende Intervall. |
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
Konvertiert die Spannweitendarstellung eines Zeitintervalls in seine TimeSpan Entsprechung mithilfe der angegebenen kulturspezifischen Formatinformationen.
public static TimeSpan Parse(ReadOnlySpan<char> input, IFormatProvider? formatProvider = default);
public static TimeSpan Parse(ReadOnlySpan<char> input, IFormatProvider formatProvider = default);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> TimeSpan
Public Shared Function Parse (input As ReadOnlySpan(Of Char), Optional formatProvider As IFormatProvider = Nothing) As TimeSpan
Parameter
- input
- ReadOnlySpan<Char>
Eine Spanne mit den Zeichen, die das zu konvertierende Zeitintervall darstellen.
- formatProvider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.
Gibt zurück
Ein Zeitintervall, das , wie angegeben, inputentsprichtformatProvider.
Implementiert
Gilt für:
Parse(String, IFormatProvider)
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
Konvertiert die Zeichenfolgendarstellung eines Zeitintervalls in seine TimeSpan Entsprechung mithilfe der angegebenen kulturspezifischen Formatinformationen.
public:
static TimeSpan Parse(System::String ^ input, IFormatProvider ^ formatProvider);
public:
static TimeSpan Parse(System::String ^ input, IFormatProvider ^ formatProvider) = IParsable<TimeSpan>::Parse;
public static TimeSpan Parse(string input, IFormatProvider formatProvider);
public static TimeSpan Parse(string input, IFormatProvider? formatProvider);
static member Parse : string * IFormatProvider -> TimeSpan
Public Shared Function Parse (input As String, formatProvider As IFormatProvider) As TimeSpan
Parameter
- input
- String
Eine Zeichenfolge, die das zu konvertierende Zeitintervall angibt.
- formatProvider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.
Gibt zurück
Ein Zeitintervall, das , wie angegeben, inputentsprichtformatProvider.
Implementiert
Ausnahmen
input ist null.
input weist ein ungültiges Format auf.
input stellt eine Zahl dar, die kleiner als TimeSpan.MinValue oder größer als TimeSpan.MaxValue ist.
-oder-
Mindestens eine der Komponenten für Tage, Stunden, Minuten oder Sekunden input liegt außerhalb des gültigen Bereichs.
Beispiele
Im folgenden Beispiel wird ein Array von CultureInfo Objekten definiert und jedes Objekt in Aufrufen der Parse(String, IFormatProvider) Methode verwendet, um die Elemente in einem Zeichenfolgenarray zu analysieren. Das Beispiel veranschaulicht, wie sich die Konventionen einer bestimmten Kultur auf den Formatierungsvorgang auswirken.
using System;
using System.Globalization;
using System.Text.RegularExpressions;
public class Example2
{
public static void Main()
{
string[] values = { "6", "6:12", "6:12:14", "6:12:14:45",
"6.12:14:45", "6:12:14:45.3448",
"6:12:14:45,3448", "6:34:14:45" };
CultureInfo[] cultures = { new CultureInfo("en-US"),
new CultureInfo("ru-RU"),
CultureInfo.InvariantCulture };
string header = String.Format("{0,-17}", "String");
foreach (CultureInfo culture in cultures)
header += culture.Equals(CultureInfo.InvariantCulture) ?
String.Format("{0,20}", "Invariant") :
String.Format("{0,20}", culture.Name);
Console.WriteLine(header);
Console.WriteLine();
foreach (string value in values)
{
Console.Write("{0,-17}", value);
foreach (CultureInfo culture in cultures)
{
try {
TimeSpan ts = TimeSpan.Parse(value, culture);
Console.Write("{0,20}", ts.ToString("c"));
}
catch (FormatException) {
Console.Write("{0,20}", "Bad Format");
}
catch (OverflowException) {
Console.Write("{0,20}", "Overflow");
}
}
Console.WriteLine();
}
}
}
// The example displays the following output:
// String en-US ru-RU Invariant
//
// 6 6.00:00:00 6.00:00:00 6.00:00:00
// 6:12 06:12:00 06:12:00 06:12:00
// 6:12:14 06:12:14 06:12:14 06:12:14
// 6:12:14:45 6.12:14:45 6.12:14:45 6.12:14:45
// 6.12:14:45 6.12:14:45 6.12:14:45 6.12:14:45
// 6:12:14:45.3448 6.12:14:45.3448000 Bad Format 6.12:14:45.3448000
// 6:12:14:45,3448 Bad Format 6.12:14:45.3448000 Bad Format
// 6:34:14:45 Overflow Overflow Overflow
open System
open System.Globalization
open System.Text.RegularExpressions
let values =
[| "6"; "6:12"; "6:12:14"; "6:12:14:45"
"6.12:14:45"; "6:12:14:45.3448"
"6:12:14:45,3448"; "6:34:14:45" |]
let cultures =
[| CultureInfo "en-US"
CultureInfo "ru-RU"
CultureInfo.InvariantCulture |]
let mutable header = $"""{"String",-17}"""
for culture in cultures do
header <- header +
if culture.Equals CultureInfo.InvariantCulture then
$"""{"Invariant",20}"""
else
$"{culture.Name,20}"
printfn $"{header}\m"
for value in values do
printf $"{value,-17}"
for culture in cultures do
try
let ts = TimeSpan.Parse(value, culture)
printf $"{ts,20:c}"
with
| :? FormatException ->
printf $"""{"Bad Format",20}"""
| :? OverflowException ->
printf $"""{"Overflow",20}"""
printfn ""
// The example displays the following output:
// String en-US ru-RU Invariant
//
// 6 6.00:00:00 6.00:00:00 6.00:00:00
// 6:12 06:12:00 06:12:00 06:12:00
// 6:12:14 06:12:14 06:12:14 06:12:14
// 6:12:14:45 6.12:14:45 6.12:14:45 6.12:14:45
// 6.12:14:45 6.12:14:45 6.12:14:45 6.12:14:45
// 6:12:14:45.3448 6.12:14:45.3448000 Bad Format 6.12:14:45.3448000
// 6:12:14:45,3448 Bad Format 6.12:14:45.3448000 Bad Format
// 6:34:14:45 Overflow Overflow Overflow
Dim values() As String = {"6", "6:12", "6:12:14", "6:12:14:45",
"6.12:14:45", "6:12:14:45.3448",
"6:12:14:45,3448", "6:34:14:45"}
Dim cultures() As CultureInfo = {New CultureInfo("en-US"),
New CultureInfo("ru-RU"),
CultureInfo.InvariantCulture}
Dim header As String = String.Format("{0,-17}", "String")
For Each culture As CultureInfo In cultures
header += If(culture.Equals(CultureInfo.InvariantCulture),
String.Format("{0,20}", "Invariant"),
String.Format("{0,20}", culture.Name))
Next
Console.WriteLine(header)
Console.WriteLine()
For Each value As String In values
Console.Write("{0,-17}", value)
For Each culture As CultureInfo In cultures
Try
Dim ts As TimeSpan = TimeSpan.Parse(value, culture)
Console.Write("{0,20}", ts.ToString("c"))
Catch e As FormatException
Console.Write("{0,20}", "Bad Format")
Catch e As OverflowException
Console.Write("{0,20}", "Overflow")
End Try
Next
Console.WriteLine()
Next
' The example displays the following output:
' String en-US ru-RU Invariant
'
' 6 6.00:00:00 6.00:00:00 6.00:00:00
' 6:12 06:12:00 06:12:00 06:12:00
' 6:12:14 06:12:14 06:12:14 06:12:14
' 6:12:14:45 6.12:14:45 6.12:14:45 6.12:14:45
' 6.12:14:45 6.12:14:45 6.12:14:45 6.12:14:45
' 6:12:14:45.3448 6.12:14:45.3448000 Bad Format 6.12:14:45.3448000
' 6:12:14:45,3448 Bad Format 6.12:14:45.3448000 Bad Format
' 6:34:14:45 Overflow Overflow Overflow
Hinweise
Diese Methode versucht, die einzelnen kulturspezifischen Formate für die von inputihnen angegebene Kultur zu analysierenformatProvider.
Der formatProvider Parameter ist eine IFormatProvider Implementierung, die kulturspezifische Informationen zum Format der zurückgegebenen Zeichenfolge bereitstellt. Der formatProvider Parameter kann eine der folgenden Sein:
- Ein CultureInfo Objekt, das die Kultur darstellt, deren Formatierungskonventionen in der zurückgegebenen Zeichenfolge widergespiegelt werden sollen. Das DateTimeFormatInfo von der CultureInfo.DateTimeFormat Eigenschaft zurückgegebene Objekt definiert die Formatierung der zurückgegebenen Zeichenfolge.
- Ein DateTimeFormatInfo Objekt, das die Formatierung der zurückgegebenen Zeichenfolge definiert.
- Ein benutzerdefiniertes Objekt, das die IFormatProvider Schnittstelle implementiert. Die IFormatProvider.GetFormat Methode gibt ein DateTimeFormatInfo Objekt zurück, das Formatierungsinformationen bereitstellt.
Wenn formatProvidernull ist, wird das mit der aktuellen Kultur verbundene DateTimeFormatInfo-Objekt verwendet.
Die Eingabezeichenfolge für die Parse Methoden enthält eine Zeitintervallspezifikation im Formular:
[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]
Elemente in eckigen Klammern ([ und ]) sind optional. Eine Auswahl aus der Liste der Alternativen, die in geschweifte Klammern ({ und }) eingeschlossen sind und durch vertikale Balken (|) getrennt sind, ist erforderlich. In der folgenden Tabelle wird jedes Element beschrieben.
| Element | Description |
|---|---|
| Ws | Optionaler Leerraum. |
| - | Ein optionales Minuszeichen, welches ein negatives TimeSpan anzeigt. |
| d | Tage, von 0 bis 10675199. |
| . | Ein kultursensibles Symbol, das Tage von Stunden trennt. Das invariante Format verwendet ein Punktzeichen (".") |
| Hh | Stunden (0 bis 23). |
| : | Das Kultursensitive Zeittrennzeichen. Das invariante Format verwendet ein Doppelpunkt (":") Zeichen. |
| Mm | Minuten, von 0 bis 59. |
| ss | Optionale Sekunden zwischen 0 und 59. |
| . | Ein kulturempfindliches Symbol, das Sekunden von Bruchteilen einer Sekunde trennt. Das invariante Format verwendet ein Punktzeichen (".") |
| ff | Optionale Bruchsekunden, die aus einer bis sieben Dezimalstellen bestehen. |
Wenn die Eingabezeichenfolge nicht nur ein Tagwert ist, muss sie eine Stunden- und Minutenkomponente enthalten; Andere Komponenten sind optional. Wenn sie vorhanden sind, müssen die Werte der einzelnen Zeitkomponenten innerhalb eines angegebenen Bereichs liegen. Beispielsweise muss der Wert von hh, die Stundenkomponente, zwischen 0 und 23 sein. Aus diesem Gründen gibt die Übergabe von "23:00:00" an die Parse Methode ein Zeitintervall von 23 Stunden zurück. Andererseits führt die Übergabe von „24:00:00“ zur Rückgabe eines Intervalls von 24 Tagen. Da sich "24" außerhalb des Bereichs der Stundenkomponente befindet, wird sie als Tagekomponente interpretiert.
Die Komponenten der Eingabezeichenfolge müssen gemeinsam ein Zeitintervall angeben, das größer oder gleich TimeSpan.MinValue und kleiner als oder gleich ist TimeSpan.MaxValue.
Die Parse(String) Methode versucht, die Eingabezeichenfolge mithilfe der einzelnen kulturspezifischen Formate für die aktuelle Kultur zu analysieren.
Gilt für:
Parse(String)
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
- Quelle:
- TimeSpan.cs
Konvertiert die Zeichenfolgendarstellung eines Zeitintervalls in das TimeSpan entsprechende Intervall.
public:
static TimeSpan Parse(System::String ^ s);
public static TimeSpan Parse(string s);
static member Parse : string -> TimeSpan
Public Shared Function Parse (s As String) As TimeSpan
Parameter
- s
- String
Eine Zeichenfolge, die das zu konvertierende Zeitintervall angibt.
Gibt zurück
Ein Zeitintervall, das entspricht s.
Ausnahmen
s ist null.
s weist ein ungültiges Format auf.
s stellt eine Zahl dar, die kleiner als TimeSpan.MinValue oder größer als TimeSpan.MaxValue ist.
-oder-
Mindestens eine der Komponenten für Tage, Stunden, Minuten oder Sekunden liegt außerhalb des gültigen Bereichs.
Beispiele
Im folgenden Beispiel wird die Parse Methode verwendet, um jedes Element in einem Zeichenfolgenarray in einen TimeSpan Wert zu konvertieren. Es ändert die aktuelle Systemkultur in Kroatisch - Kroatien ("hr-HR") und Englisch - Vereinigte Staaten ("en-US") um zu veranschaulichen, wie sich die aktuelle Systemkultur auf den Analysevorgang auswirkt.
using System;
using System.Globalization;
using System.Threading;
public class Example1
{
public static void Main()
{
string[] values = { "6", "6:12", "6:12:14", "6:12:14:45",
"6.12:14:45", "6:12:14:45.3448",
"6:12:14:45,3448", "6:34:14:45" };
string[] cultureNames = { "hr-HR", "en-US"};
// Change the current culture.
foreach (string cultureName in cultureNames)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
Console.WriteLine("Current Culture: {0}",
Thread.CurrentThread.CurrentCulture.Name);
foreach (string value in values)
{
try {
TimeSpan ts = TimeSpan.Parse(value);
Console.WriteLine("{0} --> {1}", value, ts.ToString("c"));
}
catch (FormatException) {
Console.WriteLine("{0}: Bad Format", value);
}
catch (OverflowException) {
Console.WriteLine("{0}: Overflow", value);
}
}
Console.WriteLine();
}
}
}
// The example displays the following output:
// Current Culture: hr-HR
// 6 --> 6.00:00:00
// 6:12 --> 06:12:00
// 6:12:14 --> 06:12:14
// 6:12:14:45 --> 6.12:14:45
// 6.12:14:45 --> 6.12:14:45
// 6:12:14:45.3448: Bad Format
// 6:12:14:45,3448 --> 6.12:14:45.3448000
// 6:34:14:45: Overflow
//
// Current Culture: en-US
// 6 --> 6.00:00:00
// 6:12 --> 06:12:00
// 6:12:14 --> 06:12:14
// 6:12:14:45 --> 6.12:14:45
// 6.12:14:45 --> 6.12:14:45
// 6:12:14:45.3448 --> 6.12:14:45.3448000
// 6:12:14:45,3448: Bad Format
// 6:34:14:45: Overflow
open System
open System.Globalization
open System.Threading
let values =
[| "6"; "6:12"; "6:12:14"; "6:12:14:45"
"6.12:14:45"; "6:12:14:45.3448"
"6:12:14:45,3448"; "6:34:14:45" |]
let cultureNames = [| "hr-HR"; "en-US" |]
// Change the current culture.
for cultureName in cultureNames do
Thread.CurrentThread.CurrentCulture <- CultureInfo cultureName
printfn $"Current Culture: {Thread.CurrentThread.CurrentCulture.Name}"
for value in values do
try
let ts = TimeSpan.Parse value
printfn $"{value} --> {ts:c}"
with
| :? FormatException ->
printfn $"{value}: Bad Format"
| :? OverflowException ->
printfn $"{value}: Overflow"
printfn ""
// The example displays the following output:
// Current Culture: hr-HR
// 6 --> 6.00:00:00
// 6:12 --> 06:12:00
// 6:12:14 --> 06:12:14
// 6:12:14:45 --> 6.12:14:45
// 6.12:14:45 --> 6.12:14:45
// 6:12:14:45.3448: Bad Format
// 6:12:14:45,3448 --> 6.12:14:45.3448000
// 6:34:14:45: Overflow
//
// Current Culture: en-US
// 6 --> 6.00:00:00
// 6:12 --> 06:12:00
// 6:12:14 --> 06:12:14
// 6:12:14:45 --> 6.12:14:45
// 6.12:14:45 --> 6.12:14:45
// 6:12:14:45.3448 --> 6.12:14:45.3448000
// 6:12:14:45,3448: Bad Format
// 6:34:14:45: Overflow
Dim values() As String = {"6", "6:12", "6:12:14", "6:12:14:45",
"6.12:14:45", "6:12:14:45.3448",
"6:12:14:45,3448", "6:34:14:45"}
Dim cultureNames() As String = {"hr-HR", "en-US"}
' Change the current culture.
For Each cultureName As String In cultureNames
Thread.CurrentThread.CurrentCulture = New CultureInfo(cultureName)
Console.WriteLine("Current Culture: {0}",
Thread.CurrentThread.CurrentCulture.Name)
For Each value As String In values
Try
Dim ts As TimeSpan = TimeSpan.Parse(value)
Console.WriteLine("{0} --> {1}", value, ts.ToString("c"))
Catch e As FormatException
Console.WriteLine("{0}: Bad Format", value)
Catch e As OverflowException
Console.WriteLine("{0}: Overflow", value)
End Try
Next
Console.WriteLine()
Next
' The example displays the following output:
' Current Culture: hr-HR
' 6 --> 6.00:00:00
' 6:12 --> 06:12:00
' 6:12:14 --> 06:12:14
' 6:12:14:45 --> 6.12:14:45
' 6.12:14:45 --> 6.12:14:45
' 6:12:14:45.3448: Bad Format
' 6:12:14:45,3448 --> 6.12:14:45.3448000
' 6:34:14:45: Overflow
'
' Current Culture: en-US
' 6 --> 6.00:00:00
' 6:12 --> 06:12:00
' 6:12:14 --> 06:12:14
' 6:12:14:45 --> 6.12:14:45
' 6.12:14:45 --> 6.12:14:45
' 6:12:14:45.3448 --> 6.12:14:45.3448000
' 6:12:14:45,3448: Bad Format
' 6:34:14:45: Overflow
Hinweise
Die Eingabezeichenfolge für die Parse Methoden enthält eine Zeitintervallspezifikation im Formular:
[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]
Elemente in eckigen Klammern ([ und ]) sind optional. Eine Auswahl aus der Liste der Alternativen, die in geschweifte Klammern ({ und }) eingeschlossen sind und durch vertikale Balken (|) getrennt sind, ist erforderlich. In der folgenden Tabelle wird jedes Element beschrieben.
| Element | Description |
|---|---|
| Ws | Optionaler Leerraum. |
| - | Ein optionales Minuszeichen, welches ein negatives TimeSpan anzeigt. |
| d | Tage, von 0 bis 10675199. |
| . | Ein kultursensibles Symbol, das Tage von Stunden trennt. Das invariante Format verwendet ein Punktzeichen (".") |
| Hh | Stunden (0 bis 23). |
| : | Das Kultursensitive Zeittrennzeichen. Das invariante Format verwendet ein Doppelpunkt (":") Zeichen. |
| Mm | Minuten, von 0 bis 59. |
| ss | Optionale Sekunden zwischen 0 und 59. |
| . | Ein kulturempfindliches Symbol, das Sekunden von Bruchteilen einer Sekunde trennt. Das invariante Format verwendet ein Punktzeichen (".") |
| ff | Optionale Bruchsekunden, die aus einer bis sieben Dezimalstellen bestehen. |
Wenn die Eingabezeichenfolge nicht nur ein Tagwert ist, muss sie eine Stunden- und Minutenkomponente enthalten; Andere Komponenten sind optional. Wenn sie vorhanden sind, müssen die Werte der einzelnen Zeitkomponenten innerhalb eines angegebenen Bereichs liegen. Beispielsweise muss der Wert von hh, die Stundenkomponente, zwischen 0 und 23 sein. Aus diesem Gründen gibt die Übergabe von "23:00:00" an die Parse Methode ein Zeitintervall von 23 Stunden zurück. Andererseits führt die Übergabe von „24:00:00“ zur Rückgabe eines Intervalls von 24 Tagen. Da sich "24" außerhalb des Bereichs der Stundenkomponente befindet, wird sie als Tagekomponente interpretiert.
Die Komponenten der Eingabezeichenfolge müssen gemeinsam ein Zeitintervall angeben, das größer oder gleich TimeSpan.MinValue und kleiner als oder gleich ist TimeSpan.MaxValue.
Die Parse(String) Methode versucht, die Eingabezeichenfolge mithilfe der einzelnen kulturspezifischen Formate für die aktuelle Kultur zu analysieren.