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