標準 TimeSpan 書式指定文字列Standard TimeSpan Format Strings

標準の TimeSpan 書式指定文字列は、単一の書式指定子を使用して、書式設定操作によって生成される TimeSpan 値のテキスト表現を定義します。A standard TimeSpan format string uses a single format specifier to define the text representation of a TimeSpan value that results from a formatting operation. 空白を含む複数の文字で構成される書式指定文字列は、カスタムの TimeSpan 書式指定文字列として解釈されます。Any format string that contains more than one character, including white space, is interpreted as a custom TimeSpan format string. 詳細については、「カスタム TimeSpan 書式指定文字列」をご覧ください。For more information, see Custom TimeSpan Format Strings .

TimeSpan 値の文字列形式は、TimeSpan.ToString メソッドのオーバーロードの呼び出しと、String.Format などの複合書式指定をサポートするメソッドによって生成されます。The string representations of TimeSpan values are produced by calls to the overloads of the TimeSpan.ToString method, as well as by methods that support composite formatting, such as String.Format. 詳細については、「型の書式設定」と「複合書式指定」をご覧ください。For more information, see Formatting Types and Composite Formatting. 次の例では、書式設定操作で標準書式指定文字列を使用する方法を示しています。The following example illustrates the use of standard format strings in formatting operations.

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
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.ParseExact メソッドと TimeSpan.TryParseExact メソッドでも使用されます Standard TimeSpan format strings are also used by the TimeSpan.ParseExact and TimeSpan.TryParseExact methods to define the required format of input strings for parsing operations. (解析では、特定の値の文字列形式が、その値に変換されます)。次のコード例では、解析操作で標準書式指定文字列を使用する方法を示しています。(Parsing converts the string representation of a value to that value.) The following example illustrates the use of standard format strings in parsing operations.

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

標準の時間間隔書式指定子を次の表に示します。The following table lists the standard time interval format specifiers.

書式指定子Format specifier nameName 説明Description 使用例Examples
"c""c" 固定 (不変) 書式Constant (invariant) format この指定子はカルチャに依存しません。This specifier is not culture-sensitive. [-][d’.’]hh’:’mm’:’ss[‘.’fffffff] の書式を使用します。It takes the form [-][d’.’]hh’:’mm’:’ss[‘.’fffffff].

("t" と "T" の各書式指定文字列によって生成される結果は同じになります。)(The "t" and "T" format strings produce the same results.)

詳細については、「固定の ("c") 書式指定子」を参照してください。More information: The Constant ("c") Format Specifier.
TimeSpan.Zero -> 00:00:00TimeSpan.Zero -> 00:00:00

New TimeSpan(0, 0, 30, 0) -> 00:30:00New TimeSpan(0, 0, 30, 0) -> 00:30:00

New TimeSpan(3, 17, 25, 30, 500) -> 3.17:25:30.5000000New TimeSpan(3, 17, 25, 30, 500) -> 3.17:25:30.5000000
"g""g" 一般の短い書式General short format この指定子は必要なものだけを出力します。This specifier outputs only what is needed. カルチャに依存し、[-][d’:’]h’:’mm’:’ss[.FFFFFFF] の書式になります。It is culture-sensitive and takes the form [-][d’:’]h’:’mm’:’ss[.FFFFFFF].

詳細については、「一般の短い ("g") 書式指定子」を参照してください。More information: The General Short ("g") Format Specifier.
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 (en-US)

New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50,5 (fr-FR)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 (en-US)

New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50,599 (fr-FR)New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50,599 (fr-FR)
"G""G" 一般の長い書式General long format この指定子は、常に日数と 7 桁の小数部を出力します。This specifier always outputs days and seven fractional digits. カルチャに依存し、[-]d’:’hh’:’mm’:’ss.fffffff の書式になります。It is culture-sensitive and takes the form [-]d’:’hh’:’mm’:’ss.fffffff.

詳細については、「一般の長い ("G") 書式指定子」を参照してください。More information: The General Long ("G") Format Specifier.
New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US)New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US)

New TimeSpan(18, 30, 0) -> 0:18:30:00,0000000 (fr-FR)New TimeSpan(18, 30, 0) -> 0:18:30:00,0000000 (fr-FR)

固定の ("c") 書式指定子The Constant ("c") Format Specifier

"c" 書式指定子は、次の書式で TimeSpan 値の文字列形式を返します。The "c" format specifier returns the string representation of a TimeSpan value in the following form:

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

角かっこ ([ および ]) 内の要素は省略可能です。Elements in square brackets ([ and ]) are optional. コロン (:) とピリオド (.) は、リテラル文字です。The period (.) and colon (:) are literal symbols. 残りの要素について次の表で説明します。The following table describes the remaining elements.

要素Element 説明Description
- 負の時間間隔を示す、省略可能なマイナス記号。An optional negative sign, which indicates a negative time interval.
dd 先行ゼロを付けない、省略可能な日数。The optional number of days, with no leading zeros.
hhhh "00" ~ "23" の範囲の時間数。The number of hours, which ranges from "00" to "23".
mmmm "00" ~ "59" の範囲の分数。The number of minutes, which ranges from "00" to "59".
ssss "0" ~ "59" の範囲の秒数。The number of seconds, which ranges from "0" to "59".
ffffffffffffff 省略可能な秒の小数部。The optional fractional portion of a second. "0000001" (1 ティック、つまり 1,000 万分の 1 秒) ~ "9999999" (1,000 万分の 9,999,999 秒、つまり 1 秒より 1 ティック少ない) までの範囲の値が可能です。Its value can range from "0000001" (one tick, or one ten-millionth of a second) to "9999999" (9,999,999 ten-millionths of a second, or one second less one tick).

"g" および "G" 書式指定子とは異なり、"c" 書式指定子はカルチャに依存しません。Unlike the "g" and "G" format specifiers, the "c" format specifier is not culture-sensitive. 不変で、かつ TimeSpan より前のすべての .NET Framework バージョンに共通する、.NET Framework 4.NET Framework 4 値の文字列形式を生成します。It produces the string representation of a TimeSpan value that is invariant and that is common to all previous versions of the .NET Framework before the .NET Framework 4.NET Framework 4. "c" は、既定の TimeSpan 書式文字列です。TimeSpan.ToString() メソッドは、"c" 書式指定文字列を使用して時間間隔値の書式を設定します。"c" is the default TimeSpan format string; the TimeSpan.ToString() method formats a time interval value by using the "c" format string.

注意

TimeSpan では、動作が "c" 標準書式指定文字列と同じである "t" と "T" の標準書式指定文字列もサポートされます。TimeSpan also supports the "t" and "T" standard format strings, which are identical in behavior to the "c" standard format string.

次の例では、2 つの TimeSpan オブジェクトのインスタンスを作成し、これらを使用して算術演算を実行し、結果を表示します。The following example instantiates two TimeSpan objects, uses them to perform arithmetic operations, and displays the result. いずれの場合も、複合書式指定を使用し、"c" 書式指定子を使用して TimeSpan 値を表示します。In each case, it uses composite formatting to display the TimeSpan value by using the "c" format specifier.

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

表のトップへBack to table

一般の短い ("g") 書式指定子The General Short ("g") Format Specifier

"g" TimeSpan 書式指定子は、必要な要素のみを含めることによって、コンパクトな形式で TimeSpan 値の文字列形式を返します。The "g" TimeSpan format specifier returns the string representation of a TimeSpan value in a compact form by including only the elements that are necessary. 次の書式を使用します。It has the following form:

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

角かっこ ([ および ]) 内の要素は省略可能です。Elements in square brackets ([ and ]) are optional. コロン (:) は、リテラル文字です。The colon (:) is a literal symbol. 残りの要素について次の表で説明します。The following table describes the remaining elements.

要素Element 説明Description
- 負の時間間隔を示す、省略可能なマイナス記号。An optional negative sign, which indicates a negative time interval.
dd 先行ゼロを付けない、省略可能な日数。The optional number of days, with no leading zeros.
hh 先行ゼロを付けない、"0" ~ "23" の範囲の時間数。The number of hours, which ranges from "0" to "23", with no leading zeros.
mmmm "00" ~ "59" の範囲の分数。The number of minutes, which ranges from "00" to "59"..
ssss "00" ~ "59" の範囲の秒数。The number of seconds, which ranges from "00" to "59"..
.. 秒の小数部の区切り記号。The fractional seconds separator. ユーザー オーバーライドなしで指定されているカルチャの NumberDecimalSeparator プロパティと同等です。It is equivalent to the specified culture's NumberDecimalSeparator property without user overrides.
FFFFFFFFFFFFFF 秒の小数部。The fractional seconds. 可能な限り少ない桁数が表示されます。As few digits as possible are displayed.

"G" 書式指定子と同様に、"g" 書式指定子はローカライズされます。Like the "G" format specifier, the "g" format specifier is localized. その秒の小数部の区切り記号は、現在のカルチャまたは指定されているカルチャの NumberDecimalSeparator プロパティに基づきます。Its fractional seconds separator is based on either the current culture or a specified culture's NumberDecimalSeparator property.

次の例では、2 つの TimeSpan オブジェクトのインスタンスを作成し、これらを使用して算術演算を実行し、結果を表示します。The following example instantiates two TimeSpan objects, uses them to perform arithmetic operations, and displays the result. いずれの場合も、複合書式指定を使用し、"g" 書式指定子を使用して TimeSpan 値を表示します。In each case, it uses composite formatting to display the TimeSpan value by using the "g" format specifier. また、現在のシステム カルチャ (この場合は、英語 - 米国 (en-US)) とフランス語 - フランス (fr-FR) カルチャの書式指定規則を使用して、TimeSpan 値の書式を設定します。In addition, it formats the TimeSpan value by using the formatting conventions of the current system culture (which, in this case, is English - United States or en-US) and the French - France (fr-FR) culture.

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

表のトップへBack to table

一般の長い ("G") 書式指定子The General Long ("G") Format Specifier

"G" TimeSpan 書式指定子は、常に日数と秒の小数部の両方を含む長い形式で、TimeSpan 値の文字列形式を返します。The "G" TimeSpan format specifier returns the string representation of a TimeSpan value in a long form that always includes both days and fractional seconds. "G" 標準書式指定子によって生成される文字列は、次の書式になります。The string that results from the "G" standard format specifier has the following form:

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

角かっこ ([ および ]) 内の要素は省略可能です。Elements in square brackets ([ and ]) are optional. コロン (:) は、リテラル文字です。The colon (:) is a literal symbol. 残りの要素について次の表で説明します。The following table describes the remaining elements.

要素Element 説明Description
- 負の時間間隔を示す、省略可能なマイナス記号。An optional negative sign, which indicates a negative time interval.
dd 先行ゼロを付けない日数。The number of days, with no leading zeros.
hhhh "00" ~ "23" の範囲の時間数。The number of hours, which ranges from "00" to "23".
mmmm "00" ~ "59" の範囲の分数。The number of minutes, which ranges from "00" to "59".
ssss "00" ~ "59" の範囲の秒数。The number of seconds, which ranges from "00" to "59".
.. 秒の小数部の区切り記号。The fractional seconds separator. ユーザー オーバーライドなしで指定されているカルチャの NumberDecimalSeparator プロパティと同等です。It is equivalent to the specified culture's NumberDecimalSeparator property without user overrides.
ffffffffffffff 秒の小数部。The fractional seconds.

"G" 書式指定子と同様に、"g" 書式指定子はローカライズされます。Like the "G" format specifier, the "g" format specifier is localized. その秒の小数部の区切り記号は、現在のカルチャまたは指定されているカルチャの NumberDecimalSeparator プロパティに基づきます。Its fractional seconds separator is based on either the current culture or a specified culture's NumberDecimalSeparator property.

次の例では、2 つの TimeSpan オブジェクトのインスタンスを作成し、これらを使用して算術演算を実行し、結果を表示します。The following example instantiates two TimeSpan objects, uses them to perform arithmetic operations, and displays the result. いずれの場合も、複合書式指定を使用し、"G" 書式指定子を使用して TimeSpan 値を表示します。In each case, it uses composite formatting to display the TimeSpan value by using the "G" format specifier. また、現在のシステム カルチャ (この場合は、英語 - 米国 (en-US)) とフランス語 - フランス (fr-FR) カルチャの書式指定規則を使用して、TimeSpan 値の書式を設定します。In addition, it formats the TimeSpan value by using the formatting conventions of the current system culture (which, in this case, is English - United States or en-US) and the French - France (fr-FR) culture.

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

表のトップへBack to table

参照See Also

型の書式設定Formatting Types
カスタム時間間隔書式指定文字列Custom TimeSpan Format Strings
Parsing StringsParsing Strings