Sdílet prostřednictvím


Metody TryParse pro System.TimeSpan

Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.

Metoda TryParse(System.String,System.TimeSpan@)

Metoda TimeSpan.TryParse(String, TimeSpan) je podobná TimeSpan.Parse(String) metodě, s tím rozdílem, že nevyvolá výjimku, pokud převod selže.

Parametr s obsahuje specifikaci časového intervalu ve formuláři:

[ws][-]{ d | d.hh:mm[:ss[.ff]] | hh:mm[:ss[.ff]] }[ws]

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Vyžaduje se jeden výběr ze seznamu alternativ uzavřených ve složených závorkách ({ a }) a oddělených svislými pruhy (|). Následující tabulka popisuje jednotlivé prvky.

prvek Popis
Ws Volitelné mezery.
- Volitelné znaménko minus, které označuje zápornou TimeSpan.
d Dny od 0 do 10675199.
. Symbol citlivý na kulturní prostředí, který odděluje dny od hodin. Invariantní formát používá znak tečky (".").
Hh Hodiny od 0 do 23.
: Symbol oddělovače času citlivého na kulturní kontext. Invariantní formát používá dvojtečku (":").
milimetr Minuty od 0 do 59.
ß Volitelné sekundy od 0 do 59.
. Symbol citlivý na kulturní rozdíly, který odděluje sekundy od dílů sekundy. Invariantní formát používá znak tečky (".").
Ff Volitelné desetinné sekundy, které se skládají z jedné až sedmi desetinných číslic.

Součásti s musí souhrnně určovat časový interval, který je větší než nebo roven TimeSpan.MinValue a menší nebo roven TimeSpan.MaxValue.

Metoda Parse(String) se pokusí analyzovat s pomocí jednotlivých formátů specifických pro aktuální kulturu.

metoda TryParse(String, IFormatProvider, TimeSpan)

Metoda TryParse(String, IFormatProvider, TimeSpan) je podobná Parse(String, IFormatProvider) metodě, s tím rozdílem, že nevyvolá výjimku, pokud převod selže.

Parametr input obsahuje specifikaci časového intervalu ve formuláři:

[ws][-]{ d | d.hh:mm[:ss[.ff]] | hh:mm[:ss[.ff]] }[ws]

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Vyžaduje se jeden výběr ze seznamu alternativ uzavřených ve složených závorkách ({ a }) a oddělených svislými pruhy (|). Následující tabulka popisuje jednotlivé prvky.

prvek Popis
Ws Volitelné mezery.
- Volitelné znaménko minus, které označuje zápornou TimeSpan.
d Dny od 0 do 10675199.
. Symbol citlivý na kulturní prostředí, který odděluje dny od hodin. Invariantní formát používá znak tečky (".").
Hh Hodiny od 0 do 23.
: Symbol oddělovače času citlivého na kulturní kontext. Invariantní formát používá dvojtečku (":").
milimetr Minuty od 0 do 59.
ß Volitelné sekundy od 0 do 59.
. Symbol citlivý na kulturní rozdíly, který odděluje sekundy od dílů sekundy. Invariantní formát používá znak tečky (".").
Ff Volitelné desetinné sekundy, které se skládají z jedné až sedmi desetinných číslic.

Součásti input musí souhrnně určovat časový interval, který je větší nebo roven TimeSpan.MinValue nebo menší než nebo rovno TimeSpan.MaxValue.

Metoda TryParse(String, IFormatProvider, TimeSpan) se pokusí parsovat input pomocí každého z formátů specifických pro jazykovou verzi pro jazykovou verzi určenou jazykovou formatProviderverzí .

Parametr formatProvider je IFormatProvider implementace, která poskytuje informace specifické pro jazykovou verzi o formátu vráceného řetězce. Parametr formatProvider může být některý z následujících:

Pokud formatProvider ano null, DateTimeFormatInfo použije se objekt přidružený k aktuální jazykové verzi.

Poznámky volajícím

V některých případech, kdy součást časového intervalu v řetězci, která se má analyzovat, obsahuje více než sedm číslic, parsování operací, které proběhly úspěšně a vráceny true v rozhraní .NET Framework 3.5 a starších verzích, může selhat a vrátit false v rozhraní .NET Framework 4 a novějších verzích. Následující příklad ukazuje tento scénář:

string value = "000000006";
TimeSpan interval;
if (TimeSpan.TryParse(value, out interval))
   Console.WriteLine($"{value} --> {interval}");
else
   Console.WriteLine($"Unable to parse '{value}'");
   
// Output from .NET Framework 3.5 and earlier versions:
//       000000006 --> 6.00:00:00
// Output from .NET Framework 4:
//       Unable to parse //000000006//
let value = "000000006"
match TimeSpan.TryParse value with
| true, interval ->
    printfn $"{value} --> {interval}"
| _ ->
    printfn $"Unable to parse '{value}'"
    
// Output from .NET Framework 3.5 and earlier versions:
//       000000006 --> 6.00:00:00
// Output from .NET Framework 4:
//       Unable to parse //000000006//
Dim value As String = "000000006"
Dim interval As TimeSpan
If TimeSpan.TryParse(value, interval) Then
   Console.WriteLine("{0} --> {1}", value, interval)
Else
   Console.WriteLine("Unable to parse '{0}'", value)
End If
' Output from .NET Framework 3.5 and earlier versions:
'       000000006 --> 6.00:00:00
' Output from .NET Framework 4:
'       Unable to parse '000000006'