Share via


표준 TimeSpan 서식 문자열

표준 TimeSpan 서식 문자열은 단일 서식 지정자를 사용하여 서식 지정 작업으로 생성되는 결과 TimeSpan 값의 텍스트 표현을 정의합니다. 공백을 포함하여 둘 이상의 문자가 포함된 서식 문자열은 사용자 지정 TimeSpan 서식 문자열로 해석됩니다. 자세한 내용은 사용자 지정 TimeSpan 서식 문자열을 참조하십시오.

TimeSpan 값의 문자열 표현은 String.Format의 경우와 같이 합성 서식 지정을 지원하는 메서드뿐 아니라 TimeSpan.ToString 메서드의 오버로드를 호출해도 생성됩니다. 자세한 내용은 형식 서식 지정합성 형식 지정을 참조하십시오. 다음 예제에서는 서식 지정 작업에 표준 서식 문자열을 사용하는 방법을 보여 줍니다.

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

다음 표에는 표준 시간 간격 서식 지정자의 목록이 나와 있습니다.

서식 지정자

Name

설명

예제

"c"

상수(invariant) 서식

이 지정자는 문화권을 구분하지 않습니다. 이 지정자는 [-][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"

일반 긴 서식

이 지정자는 항상 일 및 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,0000000 (fr-FR)

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

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

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

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

요소

설명

-

음의 시간 간격을 나타내는 빼기 기호로서, 선택적 요소입니다.

d

앞에 0이 오지 않는 일 수로서, 선택적 요소입니다.

hh

"00"부터 "23"까지의 범위에 속하는 시간입니다.

mm

"00"부터 "59"까지의 범위에 속하는 분입니다.

ss

"0"부터 "59"까지의 범위에 속하는 초입니다.

fffffff

"0010000"부터 "9990000"까지의 범위에 속하는 밀리초로서, 선택적 요소입니다.

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

참고참고

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

다음 예제에서는 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

앞에 0이 오지 않는 일 수로서, 선택적 요소입니다.

h

"0"부터 "23"까지의 범위에 속하는 시간으로서, 맨 앞에 0이 오지 않습니다.

mm

"00"부터 "59"까지의 범위에 속하는 분입니다.

ss

"00"부터 "59"까지의 범위에 속하는 초입니다.

.

초의 소수 부분을 지정하는 구분 기호입니다. 이는 사용자가 재정의하지 않은 지정된 문화권의 NumberDecimalSeparator 속성에 해당합니다.

FFFFFFF

초의 소수 부분입니다. 숫자는 필요한 자리까지만 표시됩니다.

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

다음 예제에서는 TimeSpan 개체 두 개를 인스턴스화하고 이를 사용하여 산술 연산을 수행한 후 그 결과를 표시합니다. 각 경우에 "g" 서식 지정자를 통해 TimeSpan 값을 표시하기 위한 합성 서식 지정을 사용합니다. 또한 현재 시스템 문화권(이 예제의 경우 영어 - 미국 또는 en-US) 및 프랑스어 - 프랑스(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

앞에 0이 오지 않는 일 수입니다.

hh

"00"부터 "23"까지의 범위에 속하는 시간입니다.

mm

"00"부터 "59"까지의 범위에 속하는 분입니다.

ss

"00"부터 "59"까지의 범위에 속하는 초입니다.

.

초의 소수 부분을 지정하는 구분 기호입니다. 이는 사용자가 재정의하지 않은 지정된 문화권의 NumberDecimalSeparator 속성에 해당합니다.

fffffff

초의 소수 부분입니다.

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

다음 예제에서는 TimeSpan 개체 두 개를 인스턴스화하고 이를 사용하여 산술 연산을 수행한 후 그 결과를 표시합니다. 각 경우에 "G" 서식 지정자를 통해 TimeSpan 값을 표시하기 위한 합성 서식 지정을 사용합니다. 또한 현재 시스템 문화권(이 예제의 경우 영어 - 미국 또는 en-US) 및 프랑스어 - 프랑스(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 서식 문자열

문자열 구문 분석