共用方式為


標準 TimeSpan 格式字串

標準 TimeSpan 格式字串會使用單一格式規範,來定義對 TimeSpan 值執行格式化作業後所產生的文字表示。 任何包含超過一個字元 (包括空白字元) 的格式字串都會解譯為自訂 TimeSpan 格式字串。 如需詳細資訊,請參閱自訂 TimeSpan 格式字串

TimeSpan 值的字串表示是透過呼叫 TimeSpan.ToString 方法的多載所產生,還有由支援複合格式的方法 (例如 String.Format) 所產生。 如需詳細資訊,請參閱格式化型別複合格式。 下列範例示範如何在格式化作業中使用標準格式字串。

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
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

標準 TimeSpan 格式字串也會由 TimeSpan.ParseExactTimeSpan.TryParseExact 方法用來定義剖析作業之輸入字串的必要格式 (剖析會將值的字串表示轉換成該值)。下列範例示範如何在剖析作業中使用標準格式字串。

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
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

下表列出標準時間間隔格式規範。

格式規範

名稱

說明

範例

"c"

常數 (非變異) 格式

這個規範不會區分文化特性。 它採用 [-][d’.’]hh’:’mm’:’ss[‘.’fffffff] 的格式。

("t" 和 "T" 格式字串會產生相同的結果)。

詳細資訊:常數 ("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"

一般短格式

這個規範只會輸出所需的結果。 它會區分文化特性,且採用 [-][d’:’]h’:’mm’:’ss[.FFFFFFF] 的格式。

詳細資訊:一般短 ("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"

一般長格式

這個規範永遠會輸出日期和七位小數。 它會區分文化特性,且採用 [-]d’:’hh’:’mm’:’ss.fffffff 的格式。

詳細資訊:一般長 ("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)

常數 ("c") 格式規範

"c" 格式規範會傳回下列格式的 TimeSpan 值字串表示:

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

方括號 ([ 和 ]) 中的項目是選擇性的。 句號 (.) 和冒號 (:) 是常值符號。 下表說明其餘項目。

項目

說明

-

選擇性的減號,表示時間間隔為負。

d

選擇性的天數,不加上前置零。

hh

時數,範圍從 "00" 到 "23"。

mm

分鐘數,範圍從 "00" 到 "59"。

ss

秒數,範圍從 "0" 到 "59"。

fffffff

選擇性的毫秒數,範圍從 "0010000" 到 "9990000"。

不像 "g" 和 "G" 格式規範,"c" 格式規範並不會區分文化特性。 它會產生 TimeSpan 值的字串表示,該值不會變異且與 .NET Framework 4 版 之前的所有版本 .NET Framework 通用。" c" 是預設 TimeSpan 格式字串,TimeSpan.ToString() 方法會使用 "c" 格式字串來格式化時間間隔值。

注意事項注意事項

TimeSpan 也支援 "t" 和 "T" 標準格式字串,這些標準格式字串在行為上與 "c" 標準格式字串相同。

下列範例會執行個體化兩個 TimeSpan 物件、使用它們來執行數學運算,並且顯示結果。 在每個案例中,它都會使用 "c" 格式規範,以複合格式來顯示 TimeSpan 值。

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
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

回到表格

一般短 ("g") 格式規範

"g" TimeSpan 格式規範會傳回 TimeSpan 值的短版字串表示,其中只包含必要的項目。 簽章有以下幾種形式:

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

方括號 ([ 和 ]) 中的項目是選擇性的。 冒號 (:) 是常值符號。 下表說明其餘項目。

項目

說明

-

選擇性的減號,表示時間間隔為負。

d

選擇性的天數,不加上前置零。

h

時數,範圍從 "0" 到 "23",不加上前置零。

mm

分鐘數,範圍從 "00" 到 "59"。

ss

秒數,範圍從 "00" 到 "59"。

.

小數秒分隔符號。 它相當於指定之文化特性的 NumberDecimalSeparator 屬性,但沒有使用者覆寫。

FFFFFFF

小數秒。 會盡可能顯示最少的位數。

就像 "G" 格式規範,"g" 格式規範會當地語系化。 它的小數秒分隔符號是根據目前文化特性或指定之文化特性的 NumberDecimalSeparator 屬性。

下列範例會執行個體化兩個 TimeSpan 物件、使用它們來執行數學運算,並且顯示結果。 在每個案例中,它都會使用 "g" 格式規範,以複合格式來顯示 TimeSpan 值。 此外,它還會使用目前的系統文化特性 (在這個案例中是 English - United States 或 en-US) 和 French - France (fr-FR) 文化特性的格式化慣例來格式化 TimeSpan 值。

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
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

回到表格

一般長 ("G") 格式規範

"G" TimeSpan 格式規範會傳回 TimeSpan 值的長版串表示,其中永遠會同時包含天數和小數秒數。 從 "G" 標準格式規範產生的字串格式如下:

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

方括號 ([ 和 ]) 中的項目是選擇性的。 冒號 (:) 是常值符號。 下表說明其餘項目。

項目

說明

-

選擇性的減號,表示時間間隔為負。

d

天數,不加上前置零。

hh

時數,範圍從 "00" 到 "23"。

mm

分鐘數,範圍從 "00" 到 "59"。

ss

秒數,範圍從 "00" 到 "59"。

.

小數秒分隔符號。 它相當於指定之文化特性的 NumberDecimalSeparator 屬性,但沒有使用者覆寫。

fffffff

小數秒。

就像 "G" 格式規範,"g" 格式規範會當地語系化。 它的小數秒分隔符號是根據目前文化特性或指定之文化特性的 NumberDecimalSeparator 屬性。

下列範例會執行個體化兩個 TimeSpan 物件、使用它們來執行數學運算,並且顯示結果。 在每個案例中,它都會使用 "G" 格式規範,以複合格式來顯示 TimeSpan 值。 此外,它還會使用目前的系統文化特性 (在這個案例中是 English - United States 或 en-US) 和 French - France (fr-FR) 文化特性的格式化慣例來格式化 TimeSpan 值。

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
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

回到表格

請參閱

概念

格式化型別

其他資源

自訂 TimeSpan 格式字串

剖析字串