String format TimeSpan standar

String format TimeSpan standar menggunakan penentu format tunggal untuk menentukan representasi teks dari nilai TimeSpan yang dihasilkan dari operasi pemformatan. String format apa pun yang berisi lebih dari satu karakter, termasuk spasi kosong, ditafsirkan sebagai string format TimeSpan kustom. Untuk informasi selengkapnya, lihat string format Rentang Waktu Kustom.

Representasi string dari nilai TimeSpan dihasilkan oleh panggilan ke kelebihan beban metode TimeSpan.ToString, serta dengan metode yang mendukung pemformatan komposit, seperti String.Format. Untuk informasi selengkapnya, lihat Tipe Pemformatan dan Pemformatan Komposit. Contoh berikut mengilustrasikan penggunaan string format standar dalam operasi pemformatan.

using System;

public class Example
{
   public static void Main()
   {
      TimeSpan duration = new TimeSpan(1, 12, 23, 62);
      string output = "Time of Travel: " + duration.ToString("c");
      Console.WriteLine(output);

      Console.WriteLine($"Time of Travel: {duration:c}");
   }
}
// The example displays the following output:
//       Time of Travel: 1.12:24:02
//       Time of Travel: 1.12:24:02
Module Example
    Public Sub Main()
        Dim duration As New TimeSpan(1, 12, 23, 62)
        Dim output As String = "Time of Travel: " + duration.ToString("c")
        Console.WriteLine(output)

        Console.WriteLine("Time of Travel: {0:c}", duration)
    End Sub
End Module
' The example displays the following output:
'       Time of Travel: 1.12:24:02
'       Time of Travel: 1.12:24:02

String format TimeSpan standar juga digunakan oleh metode TimeSpan.ParseExact dan TimeSpan.TryParseExact untuk menentukan format string input yang diperlukan untuk operasi penguraian. (Penguraian mengonversi representasi string dari nilai ke nilai tersebut.) Contoh berikut mengilustrasikan penggunaan string format standar dalam operasi penguraian.

using System;

public class Example
{
   public static void Main()
   {
      string value = "1.03:14:56.1667";
      TimeSpan interval;
      try {
         interval = TimeSpan.ParseExact(value, "c", null);
         Console.WriteLine($"Converted '{value}' to {interval}");
      }
      catch (FormatException) {
         Console.WriteLine($"{value}: Bad Format");
      }
      catch (OverflowException) {
         Console.WriteLine($"{value}: Out of Range");
      }

      if (TimeSpan.TryParseExact(value, "c", null, out interval))
         Console.WriteLine($"Converted '{value}' to {interval}");
      else
         Console.WriteLine($"Unable to convert {value} to a time interval.");
   }
}
// The example displays the following output:
//       Converted '1.03:14:56.1667' to 1.03:14:56.1667000
//       Converted '1.03:14:56.1667' to 1.03:14:56.1667000
Module Example
    Public Sub Main()
        Dim value As String = "1.03:14:56.1667"
        Dim interval As TimeSpan
        Try
            interval = TimeSpan.ParseExact(value, "c", Nothing)
            Console.WriteLine("Converted '{0}' to {1}", value, interval)
        Catch e As FormatException
            Console.WriteLine("{0}: Bad Format", value)
        Catch e As OverflowException
            Console.WriteLine("{0}: Out of Range", value)
        End Try

        If TimeSpan.TryParseExact(value, "c", Nothing, interval) Then
            Console.WriteLine("Converted '{0}' to {1}", value, interval)
        Else
            Console.WriteLine("Unable to convert {0} to a time interval.",
                              value)
        End If
    End Sub
End Module
' The example displays the following output:
'       Converted '1.03:14:56.1667' to 1.03:14:56.1667000
'       Converted '1.03:14:56.1667' to 1.03:14:56.1667000

Tabel berikut mencantumkan penentu format interval waktu standar.

Penentu format Nama Deskripsi Contoh
"c" Format konstanta (invarian) Penentu ini tidak peka terhadap budaya. Dibutuhkan formulir [-][d'.']hh':'mm':'ss['.'fffffff].

(String format "t" dan "T" menghasilkan hasil yang sama.)

Informasi selengkapnya: Penentu Format Konstanta ("c").
TimeSpan.Zero -> 00:00:00

New TimeSpan(0, 0, 30, 0) -> 00:30:00

New TimeSpan(3, 17, 25, 30, 500) -> 3.17:25:30.5000000
"g" Format pendek umum Penentu ini hanya menghasilkan apa yang diperlukan. Ini sensitif terhadap budaya dan mengambil bentuk [-][d':']h':'mm':'ss[.FFFFFFF].

Informasi selengkapnya: Penentu Format Pendek Umum ("g").
New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50.5 (en-US)

New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50,5 (fr-FR)

New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50.599 (en-US)

New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50,599 (fr-FR)
"G" Format panjang umum Penentu ini selalu menghasilkan hari dan tujuh digit pecahan. Ini sensitif terhadap budaya dan mengambil bentuk [-]d':'hh':'mm':'ss.fffffff.

Informasi selengkapnya: Penentu Format General Long ("G").
New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US)

New TimeSpan(18, 30, 0) -> 0:18:30:00,0000000 (fr-FR)

Penentu Format Konstanta ("c")

Penentu format "c" mengembalikan representasi string dari nilai TimeSpan dalam formulir berikut:

[-][d.]hh:mm:ss[.fffffff]

Elemen dalam tanda kurung siku ([ dan ]) bersifat opsional. Titik (.) dan titik dua (:) adalah simbol harfiah. Tabel berikut ini menjelaskan elemen yang tersisa.

Elemen Deskripsi
- Tanda negatif opsional, yang menunjukkan interval waktu negatif.
d Jumlah hari opsional, tanpa nol di depannya.
Hh Jumlah jam, yang berkisar dari "00" hingga "23".
mm Jumlah menit, yang berkisar dari "00" hingga "59".
ss Jumlah detik, yang berkisar dari "0" hingga "59".
fffffff Bagian pecahan opsional dari detik. Nilainya dapat berkisar dari "0000001" (satu tick, atau satu per sepuluh juta detik) hingga "9999999" (9.999.999 sepuluh juta detik, atau satu detik kurang satu centang).

Tidak seperti penentu format "g" dan "G", penentu format "c" tidak sensitif terhadap budaya. Ini menghasilkan representasi string dari nilai TimeSpan yang invarian dan itu umum untuk versi sebelum .NET Framework 4. "c" adalah string format TimeSpan default; metode TimeSpan.ToString() memformat nilai interval waktu dengan menggunakan string format "c".

Nota

TimeSpan juga mendukung string format standar "t" dan "T", yang identik dalam perilaku dengan string format standar "c".

Contoh berikut membuat instans dua objek TimeSpan, menggunakannya untuk melakukan operasi aritmatika, dan menampilkan hasilnya. Dalam setiap kasus, ia menggunakan pemformatan komposit untuk menampilkan nilai TimeSpan dengan menggunakan penentu format "c".

using System;

public class Example
{
   public static void Main()
   {
      TimeSpan interval1, interval2;
      interval1 = new TimeSpan(7, 45, 16);
      interval2 = new TimeSpan(18, 12, 38);

      Console.WriteLine($"{interval1:c} - {interval2:c} = {interval1 - interval2:c}");
      Console.WriteLine($"{interval1:c} + {interval2:c} = {interval1 + interval2:c}");

      interval1 = new TimeSpan(0, 0, 1, 14, 365);
      interval2 = TimeSpan.FromTicks(2143756);
      Console.WriteLine($"{interval1:c} + {interval2:c} = {interval1 + interval2:c}");
   }
}
// The example displays the following output:
//       07:45:16 - 18:12:38 = -10:27:22
//       07:45:16 + 18:12:38 = 1.01:57:54
//       00:01:14.3650000 + 00:00:00.2143756 = 00:01:14.5793756
Module Example
    Public Sub Main()
        Dim interval1, interval2 As TimeSpan
        interval1 = New TimeSpan(7, 45, 16)
        interval2 = New TimeSpan(18, 12, 38)

        Console.WriteLine("{0:c} - {1:c} = {2:c}", interval1,
                          interval2, interval1 - interval2)
        Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1,
                          interval2, interval1 + interval2)

        interval1 = New TimeSpan(0, 0, 1, 14, 365)
        interval2 = TimeSpan.FromTicks(2143756)
        Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1,
                          interval2, interval1 + interval2)
    End Sub
End Module
' The example displays the following output:
'       07:45:16 - 18:12:38 = -10:27:22
'       07:45:16 + 18:12:38 = 1.01:57:54
'       00:01:14.3650000 + 00:00:00.2143756 = 00:01:14.5793756

Penentu Format Pendek Umum ("g")

Penentu format TimeSpan "g" mengembalikan representasi string dari nilai TimeSpan dalam bentuk ringkas dengan hanya menyertakan elemen yang diperlukan. Ini memiliki formulir berikut:

[-][d:]h:mm:ss[.FFFFFFF]

Elemen dalam tanda kurung siku ([ dan ]) bersifat opsional. Titik dua (:) adalah simbol harfiah. Tabel berikut ini menjelaskan elemen yang tersisa.

Elemen Deskripsi
- Tanda negatif opsional, yang menunjukkan interval waktu negatif.
d Jumlah hari opsional, tanpa nol di depannya.
h Jumlah jam, yang berkisar dari "0" hingga "23", tanpa nol di depannya.
mm Jumlah menit, yang berkisar dari "00" hingga "59".
ss Jumlah detik, yang berkisar dari "00" hingga "59".
. Pemisah detik pecahan. Ini setara dengan properti NumberDecimalSeparator budaya yang ditentukan tanpa penimpaan pengguna.
FFFFFFF Detik pecahan. Sebisa mungkin digit ditampilkan.

Seperti penentu format "G", penentu format "g" dilokalkan. Pemisah detik pecahannya didasarkan pada budaya saat ini atau properti NumberDecimalSeparator budaya tertentu.

Contoh berikut membuat instans dua objek TimeSpan, menggunakannya untuk melakukan operasi aritmatika, dan menampilkan hasilnya. Dalam setiap kasus, ia menggunakan pemformatan komposit untuk menampilkan nilai TimeSpan dengan menggunakan penentu format "g". Selain itu, ini memformat nilai TimeSpan dengan menggunakan konvensi pemformatan budaya sistem saat ini (yang, dalam hal ini, adalah bahasa Inggris - Amerika Serikat atau en-US) dan budaya Prancis - Prancis (fr-FR).

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      TimeSpan interval1, interval2;
      interval1 = new TimeSpan(7, 45, 16);
      interval2 = new TimeSpan(18, 12, 38);

      Console.WriteLine($"{interval1:g} - {interval2:g} = {interval1 - interval2:g}");
      Console.WriteLine(String.Format(new CultureInfo("fr-FR"),
                        "{0:g} + {1:g} = {2:g}", interval1,
                        interval2, interval1 + interval2));

      interval1 = new TimeSpan(0, 0, 1, 14, 36);
      interval2 = TimeSpan.FromTicks(2143756);
      Console.WriteLine($"{interval1:g} + {interval2:g} = {interval1 + interval2:g}");
   }
}
// The example displays the following output:
//       7:45:16 - 18:12:38 = -10:27:22
//       7:45:16 + 18:12:38 = 1:1:57:54
//       0:01:14.036 + 0:00:00.2143756 = 0:01:14.2503756
Imports System.Globalization

Module Example
    Public Sub Main()
        Dim interval1, interval2 As TimeSpan
        interval1 = New TimeSpan(7, 45, 16)
        interval2 = New TimeSpan(18, 12, 38)

        Console.WriteLine("{0:g} - {1:g} = {2:g}", interval1,
                          interval2, interval1 - interval2)
        Console.WriteLine(String.Format(New CultureInfo("fr-FR"),
                          "{0:g} + {1:g} = {2:g}", interval1,
                          interval2, interval1 + interval2))

        interval1 = New TimeSpan(0, 0, 1, 14, 36)
        interval2 = TimeSpan.FromTicks(2143756)
        Console.WriteLine("{0:g} + {1:g} = {2:g}", interval1,
                          interval2, interval1 + interval2)
    End Sub
End Module
' The example displays the following output:
'       7:45:16 - 18:12:38 = -10:27:22
'       7:45:16 + 18:12:38 = 1:1:57:54
'       0:01:14.036 + 0:00:00.2143756 = 0:01:14.2503756

Penentu Format Panjang Umum ("G")

Penentu format TimeSpan "G" mengembalikan representasi string dari nilai TimeSpan dalam bentuk panjang yang selalu menyertakan detik hari dan pecahan. String yang dihasilkan dari penentu format standar "G" memiliki formulir berikut:

[-]d:hh:mm:ss.fffffff

Elemen dalam tanda kurung siku ([ dan ]) bersifat opsional. Titik dua (:) adalah simbol harfiah. Tabel berikut ini menjelaskan elemen yang tersisa.

Elemen Deskripsi
- Tanda negatif opsional, yang menunjukkan interval waktu negatif.
d Jumlah hari, tanpa nol di depannya.
Hh Jumlah jam, yang berkisar dari "00" hingga "23".
mm Jumlah menit, yang berkisar dari "00" hingga "59".
ss Jumlah detik, yang berkisar dari "00" hingga "59".
. Pemisah detik pecahan. Ini setara dengan properti NumberDecimalSeparator budaya yang ditentukan tanpa penimpaan pengguna.
fffffff Detik pecahan.

Seperti penentu format "G", penentu format "g" dilokalkan. Pemisah detik pecahannya didasarkan pada budaya saat ini atau properti NumberDecimalSeparator budaya tertentu.

Contoh berikut membuat instans dua objek TimeSpan, menggunakannya untuk melakukan operasi aritmatika, dan menampilkan hasilnya. Dalam setiap kasus, ia menggunakan pemformatan komposit untuk menampilkan nilai TimeSpan dengan menggunakan penentu format "G". Selain itu, ini memformat nilai TimeSpan dengan menggunakan konvensi pemformatan budaya sistem saat ini (yang, dalam hal ini, adalah bahasa Inggris - Amerika Serikat atau en-US) dan budaya Prancis - Prancis (fr-FR).

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      TimeSpan interval1, interval2;
      interval1 = new TimeSpan(7, 45, 16);
      interval2 = new TimeSpan(18, 12, 38);

      Console.WriteLine($"{interval1:G} - {interval2:G} = {interval1 - interval2:G}");
      Console.WriteLine(String.Format(new CultureInfo("fr-FR"),
                        "{0:G} + {1:G} = {2:G}", interval1,
                        interval2, interval1 + interval2));

      interval1 = new TimeSpan(0, 0, 1, 14, 36);
      interval2 = TimeSpan.FromTicks(2143756);
      Console.WriteLine($"{interval1:G} + {interval2:G} = {interval1 + interval2:G}");
   }
}
// The example displays the following output:
//       0:07:45:16.0000000 - 0:18:12:38.0000000 = -0:10:27:22.0000000
//       0:07:45:16,0000000 + 0:18:12:38,0000000 = 1:01:57:54,0000000
//       0:00:01:14.0360000 + 0:00:00:00.2143756 = 0:00:01:14.2503756
Imports System.Globalization

Module Example
    Public Sub Main()
        Dim interval1, interval2 As TimeSpan
        interval1 = New TimeSpan(7, 45, 16)
        interval2 = New TimeSpan(18, 12, 38)

        Console.WriteLine("{0:G} - {1:G} = {2:G}", interval1,
                          interval2, interval1 - interval2)
        Console.WriteLine(String.Format(New CultureInfo("fr-FR"),
                          "{0:G} + {1:G} = {2:G}", interval1,
                          interval2, interval1 + interval2))

        interval1 = New TimeSpan(0, 0, 1, 14, 36)
        interval2 = TimeSpan.FromTicks(2143756)
        Console.WriteLine("{0:G} + {1:G} = {2:G}", interval1,
                          interval2, interval1 + interval2)
    End Sub
End Module
' The example displays the following output:
'       0:07:45:16.0000000 - 0:18:12:38.0000000 = -0:10:27:22.0000000
'       0:07:45:16,0000000 + 0:18:12:38,0000000 = 1:01:57:54,0000000
'       0:00:01:14.0360000 + 0:00:00:00.2143756 = 0:00:01:14.2503756

Lihat juga