Bagikan melalui


Metode System.TimeSpan.Parse

Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.

String input ke Parse metode berisi spesifikasi interval waktu dalam formulir:

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

Elemen dalam tanda kurung siku ([ dan ]) bersifat opsional. Satu pilihan dari daftar alternatif yang diapit kurung kurawal ({ dan }) dan dipisahkan oleh bilah vertikal (|) diperlukan. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional.
- Tanda minus opsional, yang menunjukkan negatif TimeSpan.
d Hari, mulai dari 0 hingga 10675199.
. Simbol sensitif budaya yang memisahkan hari dari jam. Format invarian menggunakan karakter titik (".").
hh Berjam-jam, berkisar dari 0 hingga 23.
: Simbol pemisah waktu yang sensitif terhadap budaya. Format invarian menggunakan karakter titik dua (":").
mm Menit, berkisar dari 0 hingga 59.
Ss Detik opsional, mulai dari 0 hingga 59.
. Simbol sensitif budaya yang memisahkan detik dari pecahan detik. Format invarian menggunakan karakter titik (".").
Ff Detik pecahan opsional, terdiri dari satu hingga tujuh digit desimal.

Jika string input bukan nilai hari saja, string harus menyertakan komponen jam dan menit; komponen lain bersifat opsional. Jika ada, nilai setiap komponen waktu harus berada dalam rentang tertentu. Misalnya, nilai hh, komponen jam, harus antara 0 dan 23. Karena itu, meneruskan "23:00:00" ke Parse metode mengembalikan interval waktu 23 jam. Di sisi lain, melewati "24:00:00" mengembalikan interval waktu 24 hari. Karena "24" berada di luar rentang komponen jam, itu ditafsirkan sebagai komponen hari.

Komponen string input harus secara kolektif menentukan interval waktu yang lebih besar dari atau sama dengan TimeSpan.MinValue dan kurang dari atau sama dengan TimeSpan.MaxValue.

Metode ini Parse(String) mencoba mengurai string input dengan menggunakan masing-masing format khusus budaya untuk budaya saat ini.

Catatan untuk penelepon

Ketika komponen interval waktu dalam string yang akan diurai berisi lebih dari tujuh digit, operasi penguraian di .NET Framework 3.5 dan versi yang lebih lama mungkin berperilaku berbeda dari operasi penguraian di .NET Framework 4 dan versi yang lebih baru. Dalam beberapa kasus, operasi penguraian yang berhasil dalam .NET Framework 3.5 dan versi yang lebih lama mungkin gagal dan melempar OverflowException di .NET Framework 4 dan yang lebih baru. Dalam kasus lain, operasi penguraian yang melempar FormatException di .NET Framework 3.5 dan versi yang lebih lama mungkin gagal dan melempar OverflowException di .NET Framework 4 dan yang lebih baru. Contoh berikut mengilustrasikan kedua skenario.

string[] values = { "000000006", "12.12:12:12.12345678" };
foreach (string value in values)
{
   try {
      TimeSpan interval = TimeSpan.Parse(value);
      Console.WriteLine("{0} --> {1}", value, interval);
   }   
   catch (FormatException) {
      Console.WriteLine("{0}: Bad Format", value);
   }   
   catch (OverflowException) {
      Console.WriteLine("{0}: Overflow", value);
   }
}

// Output from .NET Framework 3.5 and earlier versions:
//       000000006 --> 6.00:00:00
//       12.12:12:12.12345678: Bad Format      
// Output from .NET Framework 4 and later versions or .NET Core:
//       000000006: Overflow
//       12.12:12:12.12345678: Overflow
open System

let values = [| "000000006"; "12.12:12:12.12345678" |]
for value in values do
    try
        let interval = TimeSpan.Parse value
        printfn $"{value} --> {interval}"   
    with
    | :? FormatException ->
        printfn $"{value}: Bad Format"
    | :? OverflowException ->
        printfn $"{value}: Overflow"

// Output from .NET Framework 3.5 and earlier versions:
//       000000006 --> 6.00:00:00
//       12.12:12:12.12345678: Bad Format      
// Output from .NET Framework 4 and later versions or .NET Core:
//       000000006: Overflow
//       12.12:12:12.12345678: Overflow
Dim values() As String = { "000000006", "12.12:12:12.12345678" }
For Each value As String In values
   Try
      Dim interval As TimeSpan = TimeSpan.Parse(value)
      Console.WriteLine("{0} --> {1}", value, interval)
   Catch e As FormatException
      Console.WriteLine("{0}: Bad Format", value)
   Catch e As OverflowException
      Console.WriteLine("{0}: Overflow", value)
   End Try         
Next
' Output from .NET Framework 3.5 and earlier versions:
'       000000006 --> 6.00:00:00
'       12.12:12:12.12345678: Bad Format      
' Output from .NET Framework 4:
'       000000006: Overflow
'       12.12:12:12.12345678: Overflow