Bagikan melalui


String format TimeSpan standar

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

Representasi string nilai TimeSpan dihasilkan oleh panggilan ke kelebihan beban metode TimeSpan.ToString, dan oleh metode yang mendukung pemformatan komposit, seperti String.Format. Untuk informasi selengkapnya, lihat Jenis Pemformatan dan Pemformatan Komposit. Contoh berikut menggambarkan 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: {0:c}", duration);
   }
}
// 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 mengubah representasi string dari suatu nilai ke nilai tersebut.) Contoh berikut menggambarkan 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 '{0}' to {1}", value, interval);
      }
      catch (FormatException) {
         Console.WriteLine("{0}: Bad Format", value);
      }
      catch (OverflowException) {
         Console.WriteLine("{0}: Out of Range", value);
      }

      if (TimeSpan.TryParseExact(value, "c", null, out interval))
         Console.WriteLine("Converted '{0}' to {1}", value, interval);
      else
         Console.WriteLine("Unable to convert {0} to a time interval.",
                           value);
   }
}
// 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 konstan (invarian) Penentu ini tidak peka terhadap kultur. Ini berbentuk [-][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 dibutuhkan. Ini sensitif terhadap kultur dan berbentuk [-][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 kultur dan berbentuk [-]d':'hh':'mm':'ss.fffffff.

Informasi selengkapnya: Penentu Format Panjang Umum ("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 bentuk berikut:

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

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

Elemen Deskripsi
- Tanda negatif opsional, yang menunjukkan interval waktu negatif.
d Jumlah hari opsional, tanpa nol di depan.
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 dalam satu detik. Nilainya dapat berkisar dari "0000001" (satu tick, atau sepersepuluh juta detik) hingga "9999999" (9.999.999 persepuluh juta detik, atau satu detik kurang satu tick).

Tidak seperti penentu format "g" dan "G", penentu format "c" tidak sensitif terhadap kultur. Ini menghasilkan representasi string dari nilai TimeSpan yang bersifat 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".

Catatan

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, itu 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("{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);
   }
}
// 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 padat dengan hanya menyertakan elemen yang diperlukan. Ini memiliki formulir berikut:

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

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

Elemen Deskripsi
- Tanda negatif opsional, yang menunjukkan interval waktu negatif.
d Jumlah hari opsional, tanpa nol di depan.
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 kultur yang ditentukan tanpa penimpaan pengguna.
FFFFFFF Detik pecahan. Sesedikit mungkin digit ditampilkan.

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

Contoh berikut membuat instans dua objek TimeSpan, menggunakannya untuk melakukan operasi aritmatika, dan menampilkan hasilnya. Dalam setiap kasus, itu menggunakan pemformatan komposit untuk menampilkan nilai TimeSpan dengan menggunakan penentu format "g". Selain itu, ini memformat nilai TimeSpan dengan menggunakan konvensi pemformatan kultur sistem saat ini (yang, dalam hal ini, adalah bahasa Inggris - Amerika Serikat atau en-US) dan kultur 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("{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);
   }
}
// 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 hari dan detik pecahan. String yang dihasilkan dari penentu format standar "G" memiliki bentuk berikut:

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

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

Elemen Deskripsi
- Tanda negatif opsional, yang menunjukkan interval waktu negatif.
d Jumlah hari, tanpa nol di depan.
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 kultur yang ditentukan tanpa penimpaan pengguna.
fffffff Detik pecahan.

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

Contoh berikut membuat instans dua objek TimeSpan, menggunakannya untuk melakukan operasi aritmatika, dan menampilkan hasilnya. Dalam setiap kasus, itu menggunakan pemformatan komposit untuk menampilkan nilai TimeSpan dengan menggunakan penentu format "G". Selain itu, ini memformat nilai TimeSpan dengan menggunakan konvensi pemformatan kultur sistem saat ini (yang, dalam hal ini, adalah bahasa Inggris - Amerika Serikat atau en-US) dan kultur 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("{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);
   }
}
// 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