다음을 통해 공유


표준 TimeSpan 서식 문자열

표준 TimeSpan 서식 문자열은 단일 서식 지정자를 사용하여 서식 지정 작업으로 인한 TimeSpan 값의 텍스트 표현을 정의합니다. 공백을 포함하여 둘 이상의 문자를 포함하는 모든 서식 문자열은 사용자 지정 TimeSpan 서식 문자열로 해석됩니다. 자세한 내용은 사용자 지정 TimeSpan 형식 문자열참조하세요.

TimeSpan 값의 문자열 표현은 TimeSpan.ToString 메서드의 오버로드에 대한 호출과 String.Format같은 복합 서식을 지원하는 메서드에 의해 생성됩니다. 자세한 내용은 형식복합 서식참조하세요. 다음 예제에서는 서식 지정 작업에서 표준 형식 문자열을 사용하는 방법을 보여 줍니다.

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: {duration:c}");
   }
}
// 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

표준 TimeSpan 형식 문자열은 TimeSpan.ParseExactTimeSpan.TryParseExact 메서드에서도 구문 분석 작업에 필요한 입력 문자열 형식을 정의하는 데 사용됩니다. 구문 분석하면 값의 문자열 표현이 해당 값으로 변환됩니다. 다음 예제에서는 구문 분석 작업에서 표준 형식 문자열을 사용하는 방법을 보여 줍니다.

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 '{value}' to {interval}");
      }
      catch (FormatException) {
         Console.WriteLine($"{value}: Bad Format");
      }
      catch (OverflowException) {
         Console.WriteLine($"{value}: Out of Range");
      }

      if (TimeSpan.TryParseExact(value, "c", null, out interval))
         Console.WriteLine($"Converted '{value}' to {interval}");
      else
         Console.WriteLine($"Unable to convert {value} to a time interval.");
   }
}
// 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

다음 표에서는 표준 시간 간격 형식 지정자를 나열합니다.

서식 지정자 이름 설명 예시
"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.50000000
"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" 일반 긴 형식 이 지정자는 항상 일 및 7개의 소수 자릿수를 출력합니다. 문화권에 민감하며 [-]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,000000(fr-FR)

상수("c") 서식 지정자

"c" 형식 지정자는 다음 형식으로 TimeSpan 값의 문자열 표현을 반환합니다.

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

대괄호([ 및 ])의 요소는 선택 사항입니다. 마침표(.) 및 콜론(:)은 리터럴 기호입니다. 다음 표에서는 나머지 요소에 대해 설명합니다.

요소 설명
- 음수 시간 간격을 나타내는 선택적 음수 기호입니다.
d 앞에 오는 0이 없는 선택적 일 수입니다.
hh "00"에서 "23"에 이르는 시간 수입니다.
MM "00"에서 "59"에 이르는 분 수입니다.
ss "0"에서 "59"에 이르는 시간(초)입니다.
fffff 1초의 선택적 소수 부분입니다. 해당 값은 "0000001"(틱 1개 또는 1초의 1000만 분의 1)에서 "9999999"(9,999,999초, 1초 미만 1틱)에 이르기까지 다양할 수 있습니다.

"g" 및 "G" 형식 지정자와 달리 "c" 형식 지정자는 문화권을 구분하지 않습니다. .NET Framework 4 이전 버전에 공통적으로 적용되는 TimeSpan 값의 문자열 표현을 생성합니다. "c"는 기본 TimeSpan 형식 문자열입니다. TimeSpan.ToString() 메서드는 "c" 형식 문자열을 사용하여 시간 간격 값의 형식을 지정합니다.

메모

TimeSpan "t" 및 "T" 표준 형식 문자열도 지원합니다. 이 문자열은 "c" 표준 형식 문자열과 동작이 동일합니다.

다음 예제에서는 두 TimeSpan 개체를 인스턴스화하고 이를 사용하여 산술 연산을 수행하고 결과를 표시합니다. 각 경우에 복합 서식을 사용하여 "c" 형식 지정자를 사용하여 TimeSpan 값을 표시합니다.

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($"{interval1:c} - {interval2:c} = {interval1 - interval2:c}");
      Console.WriteLine($"{interval1:c} + {interval2:c} = {interval1 + interval2:c}");

      interval1 = new TimeSpan(0, 0, 1, 14, 365);
      interval2 = TimeSpan.FromTicks(2143756);
      Console.WriteLine($"{interval1:c} + {interval2:c} = {interval1 + interval2:c}");
   }
}
// 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

일반 짧게("g") 형식 지정자

"g" TimeSpan 형식 지정자는 필요한 요소만 포함하여 TimeSpan 값의 문자열 표현을 압축 형식으로 반환합니다. 형식은 다음과 같습니다.

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

대괄호([ 및 ])의 요소는 선택 사항입니다. 콜론(:) 리터럴 기호입니다. 다음 표에서는 나머지 요소에 대해 설명합니다.

요소 설명
- 음수 시간 간격을 나타내는 선택적 음수 기호입니다.
d 앞에 오는 0이 없는 선택적 일 수입니다.
시간 앞에 오는 0이 없는 "0"에서 "23"까지의 시간 수입니다.
MM "00"에서 "59"에 이르는 분 수입니다.
ss "00"에서 "59"에 이르는 시간(초)입니다.
. 소수 자릿수 초 구분 기호입니다. 이는 사용자 재정의 없이 지정된 문화권의 NumberDecimalSeparator 속성과 동일합니다.
FFFFFFF 소수 자릿수 초입니다. 가능한 한 적은 자릿수가 표시됩니다.

"G" 형식 지정자와 마찬가지로 "g" 형식 지정자는 지역화됩니다. 소수 자릿수 초 구분 기호는 현재 문화권 또는 지정된 문화권의 NumberDecimalSeparator 속성을 기반으로 합니다.

다음 예제에서는 두 TimeSpan 개체를 인스턴스화하고 이를 사용하여 산술 연산을 수행하고 결과를 표시합니다. 각 경우에 복합 서식을 사용하여 "g" 형식 지정자를 사용하여 TimeSpan 값을 표시합니다. 또한 현재 시스템 문화권(이 경우 영어 - 미국 또는 en-US) 및 프랑스어 -프랑스(fr-FR) 문화권의 서식 지정 규칙을 사용하여 TimeSpan 값의 서식을 지정합니다.

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($"{interval1:g} - {interval2:g} = {interval1 - interval2:g}");
      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($"{interval1:g} + {interval2:g} = {interval1 + interval2:g}");
   }
}
// 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

일반 Long("G") 형식 지정자

"G" TimeSpan 형식 지정자는 항상 일 및 소수 자릿수 초를 모두 포함하는 긴 형식으로 TimeSpan 값의 문자열 표현을 반환합니다. "G" 표준 형식 지정자에서 생성된 문자열의 형식은 다음과 같습니다.

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

대괄호([ 및 ])의 요소는 선택 사항입니다. 콜론(:) 리터럴 기호입니다. 다음 표에서는 나머지 요소에 대해 설명합니다.

요소 설명
- 음수 시간 간격을 나타내는 선택적 음수 기호입니다.
d 앞에 오는 0이 없는 일 수입니다.
hh "00"에서 "23"에 이르는 시간 수입니다.
MM "00"에서 "59"에 이르는 분 수입니다.
ss "00"에서 "59"에 이르는 시간(초)입니다.
. 소수 자릿수 초 구분 기호입니다. 이는 사용자 재정의 없이 지정된 문화권의 NumberDecimalSeparator 속성과 동일합니다.
fffff 소수 자릿수 초입니다.

"G" 형식 지정자와 마찬가지로 "g" 형식 지정자는 지역화됩니다. 소수 자릿수 초 구분 기호는 현재 문화권 또는 지정된 문화권의 NumberDecimalSeparator 속성을 기반으로 합니다.

다음 예제에서는 두 TimeSpan 개체를 인스턴스화하고 이를 사용하여 산술 연산을 수행하고 결과를 표시합니다. 각 경우에 복합 서식을 사용하여 "G" 형식 지정자를 사용하여 TimeSpan 값을 표시합니다. 또한 현재 시스템 문화권(이 경우 영어 - 미국 또는 en-US) 및 프랑스어 -프랑스(fr-FR) 문화권의 서식 지정 규칙을 사용하여 TimeSpan 값의 서식을 지정합니다.

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($"{interval1:G} - {interval2:G} = {interval1 - interval2:G}");
      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($"{interval1:G} + {interval2:G} = {interval1 + interval2:G}");
   }
}
// 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

참고하십시오