エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

TimeSpan 構造体

時間間隔を表します。

名前空間:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct TimeSpan : IComparable, IComparable<TimeSpan>, 
	IEquatable<TimeSpan>, IFormattable

TimeSpan 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTimeSpan(Int64) TimeSpan 構造体の新しいインスタンスを、指定したタイマー刻み数に初期化します。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTimeSpan(Int32, Int32, Int32) TimeSpan 構造体の新しいインスタンスを、指定した時間数、分数、秒数に初期化します。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTimeSpan(Int32, Int32, Int32, Int32) TimeSpan 構造体の新しいインスタンスを、指定した日数、時間数、分数、秒数に初期化します。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTimeSpan(Int32, Int32, Int32, Int32, Int32) TimeSpan 構造体の新しいインスタンスを、指定した日数、時間数、分数、秒数、ミリ秒数に初期化します。
このページのトップへ

  名前説明
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETDays現在の TimeSpan 構造体によって表される時間間隔の日要素を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETHours現在の TimeSpan 構造体が表す時間間隔の時間の部分を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETMilliseconds現在の TimeSpan 構造体が表す時間間隔のミリ秒の部分を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETMinutes現在の TimeSpan 構造体が表す時間間隔の分の部分を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETSeconds現在の TimeSpan 構造体が表す時間間隔の秒の部分を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTicks現在の TimeSpan 構造体の値を表すタイマー刻みの数を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTotalDays整数部と小数部から成る日数で表される、現在の TimeSpan 構造体の値を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTotalHours整数部と小数部から成る時間数で表される、現在の TimeSpan 構造体の値を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTotalMilliseconds整数部と小数部から成るミリ秒数で表される、現在の TimeSpan 構造体の値を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTotalMinutes整数部と小数部から成る分数で表される、現在の TimeSpan 構造体の値を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTotalSeconds整数部と小数部から成る秒数で表される、現在の TimeSpan 構造体の値を取得します。
このページのトップへ

  名前説明
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETAdd指定した TimeSpan オブジェクトとこのインスタンスを合計した値を持つ新しい TimeSpan オブジェクトを返します。
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETCompare2 つの TimeSpan 値を比較し、第 1 の値が第 2 の値よりも短いか、同じか、または長いかを示す整数を返します。
パブリック メソッドXNA Framework によるサポートCompareTo(Object)このインスタンスと指定したオブジェクトを比較し、このインスタンスが指定したオブジェクトよりも短いか、同じか、または長いかを示す整数を返します。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETCompareTo(TimeSpan)このインスタンスと指定した TimeSpan オブジェクトを比較し、このインスタンスが指定した TimeSpan オブジェクトよりも短いか、同じか、または長いかを示す整数を返します。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETDuration値が現在の TimeSpan オブジェクトの絶対値である、新しい TimeSpan オブジェクトを返します。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETEquals(Object)対象のインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返します。 (ValueType.Equals(Object) をオーバーライドします。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETEquals(TimeSpan)このインスタンスが、指定した TimeSpan オブジェクトに等しいかどうかを示す値を返します。
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETEquals(TimeSpan, TimeSpan) TimeSpan の指定した 2 つのインスタンスが等しいかどうかを示す値を返します。
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETFromDays指定した日数を表す TimeSpan を返します。日数は、ミリ秒単位の精度で指定します。
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETFromHours指定した時間数を表す TimeSpan を返します。時間数は、ミリ秒単位の精度で指定します。
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETFromMilliseconds指定したミリ秒数を表す TimeSpan を返します。
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETFromMinutes指定した分数を表す TimeSpan を返します。分数は、ミリ秒単位の精度で指定します。
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETFromSeconds指定した秒数を表す TimeSpan を返します。秒数は、ミリ秒単位の精度で指定します。
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETFromTicks指定した時間を表す TimeSpan を返します。時間は、タイマー刻み単位で指定します。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGetHashCodeこのインスタンスのハッシュ コードを返します。 (ValueType.GetHashCode() をオーバーライドします。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETNegateこのインスタンスの値とは符号が逆の値を持つ新しい TimeSpan オブジェクトを返します。
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETParse(String)時間間隔の文字列形式を等価の TimeSpan に変換します。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETParse(String, IFormatProvider)指定したカルチャ固有の書式情報を使用して、時間間隔の文字列形式を等価の TimeSpan に変換します。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETParseExact(String, String, IFormatProvider)指定した書式とカルチャ固有の書式情報を使用して、時間間隔の文字列形式を等価の TimeSpan に変換します。 文字列形式の書式は、指定した書式と完全に一致する必要があります。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETParseExact(String, String[], IFormatProvider)指定した書式指定文字列の配列とカルチャ固有の書式情報を使用して、時間間隔の文字列形式を等価の TimeSpan に変換します。 文字列形式の書式は、指定されたいずれかの書式と完全に一致する必要があります。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETParseExact(String, String, IFormatProvider, TimeSpanStyles)指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、時間間隔の文字列形式を等価の TimeSpan に変換します。 文字列形式の書式は、指定した書式と完全に一致する必要があります。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETParseExact(String, String[], IFormatProvider, TimeSpanStyles)指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、時間間隔の文字列形式を等価の TimeSpan に変換します。 文字列形式の書式は、指定されたいずれかの書式と完全に一致する必要があります。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETSubtract指定した TimeSpan オブジェクトとこのインスタンスとの差を示す値を持つ、新しい TimeSpan オブジェクトを返します。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETToString()現在の TimeSpan オブジェクトの値を等価の文字列形式に変換します。 (ValueType.ToString() をオーバーライドします。)
パブリック メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETToString(String)指定した書式を使用して、現在の TimeSpan オブジェクトの値を等価の文字列形式に変換します。
パブリック メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETToString(String, IFormatProvider)指定した書式とカルチャ固有の書式情報を使用して、現在の TimeSpan オブジェクトの値を等価の文字列形式に変換します。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTryParse(String, TimeSpan)時間間隔の文字列形式を等価の TimeSpan に変換し、変換に成功したかどうかを示す値を返します。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTryParse(String, IFormatProvider, TimeSpan)指定したカルチャ固有の書式情報を使用して、時間間隔の文字列形式を等価の TimeSpan に変換し、変換に成功したかどうかを示す値を返します。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTryParseExact(String, String, IFormatProvider, TimeSpan)指定した書式とカルチャ固有の書式情報を使用して、時間間隔の文字列形式を等価の TimeSpan に変換し、変換に成功したかどうかを示す値を返します。 文字列形式の書式は、指定した書式と完全に一致する必要があります。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTryParseExact(String, String[], IFormatProvider, TimeSpan)指定した書式とカルチャ固有の書式情報を使用して、指定した文字列形式の時間間隔を等価の TimeSpan に変換し、変換に成功したかどうかを示す値を返します。 文字列形式の書式は、指定されたいずれかの書式と完全に一致する必要があります。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTryParseExact(String, String, IFormatProvider, TimeSpanStyles, TimeSpan)指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、時間間隔の文字列形式を等価の TimeSpan に変換し、変換に成功したかどうかを示す値を返します。 文字列形式の書式は、指定した書式と完全に一致する必要があります。
パブリック メソッド静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTryParseExact(String, String[], IFormatProvider, TimeSpanStyles, TimeSpan)指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、指定した文字列形式の時間間隔を等価の TimeSpan に変換し、変換に成功したかどうかを示す値を返します。 文字列形式の書式は、指定されたいずれかの書式と完全に一致する必要があります。
このページのトップへ

  名前説明
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETAddition指定した 2 つの TimeSpan インスタンスを加算します。
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETEquality2 つの TimeSpan インスタンスが等しいかどうかを示します。
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGreaterThan指定した TimeSpan が、指定したもう 1 つの TimeSpan より大きいかどうかを示します。
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGreaterThanOrEqual指定した TimeSpan が、指定したもう 1 つの TimeSpan 以上かどうかを示します。
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETInequality2 つの TimeSpan インスタンスが等しくないかどうかを示します。
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETLessThan指定した TimeSpan が、指定したもう 1 つの TimeSpan 未満かどうかを示します。
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETLessThanOrEqual指定した TimeSpan が、指定したもう 1 つの TimeSpan 以下かどうかを示します。
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETSubtraction指定したもう 1 つの TimeSpan から、指定した TimeSpan を減算します。
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETUnaryNegation指定したインスタンスの値とは符号が逆の値を持つ TimeSpan を返します。
パブリック演算子静的メンバー汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETUnaryPlus TimeSpan の指定したインスタンスを返します。
このページのトップへ

  名前説明
パブリック フィールド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETMaxValue TimeSpan の最大値を表します。 このフィールドは読み取り専用です。
パブリック フィールド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETMinValue TimeSpan の最小値を表します。 このフィールドは読み取り専用です。
パブリック フィールド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTicksPerDayタイマー刻みの数を 1 日で表します。 このフィールドは定数です。
パブリック フィールド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTicksPerHourタイマー刻みの数を 1 時間で表します。 このフィールドは定数です。
パブリック フィールド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTicksPerMillisecondタイマー刻みの数を 1 ミリ秒で表します。 このフィールドは定数です。
パブリック フィールド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTicksPerMinuteタイマー刻みの数を 1 分で表します。 このフィールドは定数です。
パブリック フィールド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTicksPerSecondタイマー刻みの数を 1 秒で表します。
パブリック フィールド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETZero0 の TimeSpan 値を表します。 このフィールドは読み取り専用です。
このページのトップへ

  名前説明
明示的なインターフェイス実装プライベート メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETIComparable.CompareTo現在のインスタンスを同じ型の別のオブジェクトと比較し、現在のインスタンスの並べ替え順序での位置が、比較対象のオブジェクトと比べて前か、後か、または同じかを示す整数を返します。
このページのトップへ

A TimeSpan object represents a time interval (duration of time or elapsed time) that is measured as a positive or negative number of days, hours, minutes, seconds, and fractions of a second. The TimeSpan structure can also be used to represent the time of day, but only if the time is unrelated to a particular date. Otherwise, the DateTime or DateTimeOffset structure should be used instead.(For more information about using the TimeSpan structure to reflect the time of day, see DateTime、DateTimeOffset、および TimeZoneInfo の使い分け.)

The largest unit of time that the TimeSpan structure uses to measure duration is a day. Time intervals are measured in days for consistency, because the number of days in larger units of time, such as months and years, varies.

The value of a TimeSpan object is the number of ticks that equal the represented time interval. A tick is equal to 100 nanoseconds, or one ten-millionth of a second. The value of a TimeSpan object can range from TimeSpan.MinValue to TimeSpan.MaxValue.

Instantiating a TimeSpan Value

You can instantiate a TimeSpan value in a number of ways:

  • By calling its implicit default constructor. This creates an object whose value is TimeSpan.Zero, as the following example shows.

    
    TimeSpan interval = new TimeSpan();
    Console.WriteLine(interval.Equals(TimeSpan.Zero));    // Displays "True".
    
    
    
  • By calling one of its explicit constructors. The following example initializes a TimeSpan value to a specified number of hours, minutes, and seconds.

    
    TimeSpan interval = new TimeSpan(2, 14, 18);
    Console.WriteLine(interval.ToString());              // Displays "02:14:18".
    
    
    
  • By calling a method or performing an operation that returns a TimeSpan value. For example, you can instantiate a TimeSpan value that represents the interval between two date and time values, as the following example shows.

    
    DateTime departure = new DateTime(2010, 6, 12, 18, 32, 0);
    DateTime arrival = new DateTime(2010, 6, 13, 22, 47, 0);
    TimeSpan travelTime = arrival - departure;  
    Console.WriteLine("{0} - {1} = {2}", arrival, departure, travelTime);      
    // The example displays the following output:
    //       6/13/2010 10:47:00 PM - 6/12/2010 6:32:00 PM = 1.04:15:00
    
    
    

    You can also initialize a TimeSpan object to a zero time value in this way, as the following example shows.

    
    using System;
    
    public class Example
    {
       static Random rnd = new Random();
    
       public static void Main()
       {
          TimeSpan timeSpent = TimeSpan.Zero;
    
          timeSpent += GetTimeBeforeLunch();
          timeSpent += GetTimeAfterLunch();
    
          Console.WriteLine("Total time: {0}", timeSpent);
       }
    
       private static TimeSpan GetTimeBeforeLunch()
       {
          return new TimeSpan(rnd.Next(3, 6), 0, 0);
       }
    
       private static TimeSpan GetTimeAfterLunch()
       {
          return new TimeSpan(rnd.Next(3, 6), 0, 0);
       }
    }
    // The example displays output like the following:
    //        Total time: 08:00:00
    
    
    

    TimeSpan values are returned by arithmetic operators and methods of the DateTime, DateTimeOffset, and TimeSpan structures.

  • By parsing the string representation of a TimeSpan value. You can use the Parse and TryParse methods to convert strings that contain time intervals to TimeSpan values. The following example uses the Parse method to convert an array of strings to TimeSpan values.

    
    string[] values = { "12", "31.", "5.8:32:16", "12:12:15.95", ".12"};
    foreach (string value in values)
    {
       try {
          TimeSpan ts = TimeSpan.Parse(value);
          Console.WriteLine("'{0}' --> {1}", value, ts);
       }
       catch (FormatException) {
          Console.WriteLine("Unable to parse '{0}'", value);
       }
       catch (OverflowException) {
          Console.WriteLine("'{0}' is outside the range of a TimeSpan.", value);
       }   
    }
    // The example displays the following output:
    //       '12' --> 12.00:00:00
    //       Unable to parse '31.'
    //       '5.8:32:16' --> 5.08:32:16
    //       '12:12:15.95' --> 12:12:15.9500000
    //       Unable to parse '.12'  
    
    
    

    In addition, you can define the precise format of the input string to be parsed and converted to a TimeSpan value by calling the ParseExact or TryParseExact method.

Performing Operations on TimeSpan Values

You can add and subtract time durations either by using the Addition and Subtraction operators, or by calling the Add and Subtract methods. You can also compare two time durations by calling the Compare, CompareTo, and Equals methods. The TimeSpan class also includes the Duration and Negate methods, which convert time intervals to positive and negative values,

The range of TimeSpan values is MinValue to MaxValue.

Formatting a TimeSpan Value

A TimeSpan value can be represented as [-]d.hh:mm:ss.ff, where the optional minus sign indicates a negative time interval, the d component is days, hh is hours as measured on a 24-hour clock, mm is minutes, ss is seconds, and ff is fractions of a second. That is, a time interval consists of a positive or negative number of days without a time of day, or a number of days with a time of day, or only a time of day.

Beginning with the .NET Framework 4, the TimeSpan structure supports culture-sensitive formatting through the overloads of its ToString method, which converts a TimeSpan value to its string representation. The default TimeSpan.ToString() method returns a time interval by using an invariant format that is identical to its return value in previous versions of the .NET Framework. The TimeSpan.ToString(String) overload lets you specify a format string that defines the string representation of the time interval. The TimeSpan.ToString(String, IFormatProvider) overload lets you specify a format string and the culture whose formatting conventions are used to create the string representation of the time interval. TimeSpan supports both standard and custom format strings.(For more information, see 標準の時間間隔書式指定文字列 and カスタム時間間隔書式指定文字列.)However, only standard format strings are culture-sensitive.

Restoring Legacy TimeSpan Formatting

In some cases, code that successfully formats TimeSpan values in .NET Framework 3.5 and earlier versions fails in .NET Framework 4. This is most common in code that calls a composite formatting method to format a TimeSpan value with a format string. The following example successfully formats a TimeSpan value in .NET Framework 3.5 and earlier versions, but throws an exception in .NET Framework 4 and later versions. Note that it attempts to format a TimeSpan value by using an unsupported format specifier, which is ignored in .NET Framework 3.5 and earlier versions.


TimeSpan interval = new TimeSpan(12, 30, 45);
string output;
try {
   output = String.Format("{0:r}", interval);
}
catch (FormatException) {
   output = "Invalid Format";
}
Console.WriteLine(output);
// Output from .NET Framework 3.5 and earlier versions:
//       12:30:45
// Output from .NET Framework 4:
//       Invalid Format


If you cannot modify the code, you can restore the legacy formatting of TimeSpan values in one of the following ways:

  • By creating a configuration file that contains the <TimeSpan_LegacyFormatMode> element. Setting this element's enabled attribute to true restores legacy TimeSpan formatting on a per-application basis.

  • By setting the "NetFx40_TimeSpanLegacyFormatMode" compatibility switch when you create an application domain. This enables legacy TimeSpan formatting on a per-application-domain basis. The following example creates an application domain that uses legacy TimeSpan formatting.

    
    using System;
    
    public class Example
    {
       public static void Main()
       {
          AppDomainSetup appSetup = new AppDomainSetup();
          appSetup.SetCompatibilitySwitches( new string[] { "NetFx40_TimeSpanLegacyFormatMode" } );
          AppDomain legacyDomain = AppDomain.CreateDomain("legacyDomain", 
                                                          null, appSetup);
          legacyDomain.ExecuteAssembly("ShowTimeSpan.exe");
       }
    }
    
    
    

    When the following code executes in the new application domain, it reverts to legacy TimeSpan formatting behavior.

    
    using System;
    
    public class Example
    {
       public static void Main()
       {
          TimeSpan interval = DateTime.Now - DateTime.Now.Date;
          string msg = String.Format("Elapsed Time Today: {0:d} hours.",
                                     interval);
          Console.WriteLine(msg);
       }
    }
    // The example displays the following output:
    //       Elapsed Time Today: 01:40:52.2524662 hours.
    
    
    

The following example instantiates a TimeSpan object that represents the difference between two dates. It then displays the TimeSpan object's properties.


// Define two dates.
DateTime date1 = new DateTime(2010, 1, 1, 8, 0, 15);
DateTime date2 = new DateTime(2010, 8, 18, 13, 30, 30);
// Calculate the interval between the two dates.
TimeSpan interval = date2 - date1;
Console.WriteLine("{0} - {1} = {2}", date2, date1, interval.ToString());
// Display individual properties of the resulting TimeSpan object.
Console.WriteLine("   {0,-35} {1,20}", "Value of Days Component:", interval.Days);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Days:", interval.TotalDays);
Console.WriteLine("   {0,-35} {1,20}", "Value of Hours Component:", interval.Hours);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Hours:", interval.TotalHours);
Console.WriteLine("   {0,-35} {1,20}", "Value of Minutes Component:", interval.Minutes);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Minutes:", interval.TotalMinutes);
Console.WriteLine("   {0,-35} {1,20:N0}", "Value of Seconds Component:", interval.Seconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Total Number of Seconds:", interval.TotalSeconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Value of Milliseconds Component:", interval.Milliseconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Total Number of Milliseconds:", interval.TotalMilliseconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Ticks:", interval.Ticks);
// the example displays the following output:
//       8/18/2010 1:30:30 PM - 1/1/2010 8:00:15 AM = 229.05:30:15
//          Value of Days Component:                             229
//          Total Number of Days:                   229.229340277778
//          Value of Hours Component:                              5
//          Total Number of Hours:                  5501.50416666667
//          Value of Minutes Component:                           30
//          Total Number of Minutes:                       330090.25
//          Value of Seconds Component:                           15
//          Total Number of Seconds:                      19,805,415
//          Value of Milliseconds Component:                       0
//          Total Number of Milliseconds:             19,805,415,000
//          Ticks:                               198,054,150,000,000


.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

コミュニティの追加

追加
表示:
© 2014 Microsoft