共用方式為


System.TimeSpan.Parse 方法

本文提供此 API 參考文件的補充備註。

方法的 Parse 輸入字串包含格式的時間間隔規格:

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

方括弧 ([]) 中的元素是選擇性的。 需要從大括弧 ({}) 括住的替代專案清單中選取一個選取專案,並以垂直線分隔。|。 下表說明每個元素。

元素 描述
ws 選擇性的空格符。
- 選擇性減號,表示負數 TimeSpan
d 天,範圍從 0 到 10675199。
. 區分文化特性的符號,分隔天數與小時。 不變異格式會使用句號 (“.”) 字元。
hh 小時,範圍從 0 到 23。
區分文化特性的時間分隔符符號。 不變異格式會使用冒號 (“:”) 字元。
mm 分鐘,範圍從 0 到 59。
ss 選擇性秒,範圍從 0 到 59。
. 區分文化特性的符號,分隔秒數與秒數。 不變異格式會使用句號 (“.”) 字元。
ff 選擇性的小數秒,由一到七個小數字數組成。

如果輸入字串不是僅一天值,它必須包含小時和分鐘元件;其他元件是選擇性的。 如果存在,則每個時間元件的值都必須落在指定的範圍內。 例如,小時元件 hh 的值必須介於 0 到 23 之間。 因此,將 「23:00:00」 傳遞給 Parse 方法會傳回 23 小時的時間間隔。 另一方面,傳遞 「24:00:00」 會傳回 24 天的時間間隔。 因為 「24」 超出時數元件的範圍,所以它會解譯為 days 元件。

輸入字串的元件必須共同指定大於或等於 TimeSpan.MinValue 且小於或等於 TimeSpan.MaxValue的時間間隔。

方法 Parse(String) 會嘗試使用目前文化特性的每個特定文化特性格式來剖析輸入字串。

給來電者的注意事項

當要剖析之字串中的時間間隔元件包含七個以上的數位時,.NET Framework 3.5 和舊版中的剖析作業可能會與 .NET Framework 4 和更新版本中的剖析作業不同。 在某些情況下,剖析 .NET Framework 3.5 和舊版中成功的作業可能會失敗,並在 .NET Framework 4 和更新版本中擲回 OverflowException 。 在其他情況下,在 .NET Framework 3.5 和舊版中擲回 FormatException 的剖析作業可能會失敗,並在 .NET Framework 4 和更新版本中擲回 OverflowException 。 下列範例說明這兩個案例。

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