다음을 통해 공유


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 1~7자리 소수 자릿수로 구성된 선택적 소수 자릿수 초입니다.

입력 문자열이 일 값만 아닌 경우 시간 및 분 구성 요소를 포함해야 합니다. 다른 구성 요소는 선택 사항입니다. 이 값이 있는 경우 각 시간 구성 요소의 값은 지정된 범위 내에 있어야 합니다. 예를 들어 시간 구성 요소인 hh값은 0에서 23 사이여야 합니다. 이 때문에 메서드에 "23:00:00"을 전달하면 Parse 23시간의 시간 간격이 반환됩니다. 반면에 "24:00:00"을 전달하면 24일의 시간 간격이 반환됩니다. "24"는 시간 구성 요소 범위를 벗어나므로 일 구성 요소로 해석됩니다.

입력 문자열의 구성 요소는 보다 크거나 같고 보다 작거나 같은 TimeSpan.MaxValue시간 간격을 TimeSpan.MinValue 집합적으로 지정해야 합니다.

이 메서드는 Parse(String) 현재 문화권에 대한 각 문화권별 형식을 사용하여 입력 문자열을 구문 분석하려고 합니다.

호출자에 대한 참고 사항

구문 분석할 문자열의 시간 간격 구성 요소에 7자리 이상의 숫자가 포함된 경우 .NET Framework 3.5 및 이전 버전의 구문 분석 작업은 .NET Framework 4 이상 버전의 구문 분석 작업과 다르게 동작할 수 있습니다. 경우에 따라 .NET Framework 3.5 및 이전 버전에서 성공한 구문 분석 작업이 실패하고 .NET Framework 4 이상에서 throw OverflowException 할 수 있습니다. 다른 경우에는 .NET Framework 3.5 및 이전 버전에서 throw FormatException 하는 구문 분석 작업이 실패하고 .NET Framework 4 이상에서 throw 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