TimeSpan.Parse TimeSpan.Parse TimeSpan.Parse TimeSpan.Parse Method

定義

時間間隔の文字列形式を等価の TimeSpan に変換します。Converts the string representation of a time interval to its TimeSpan equivalent.

オーバーロード

Parse(String) Parse(String) Parse(String) Parse(String)

時間間隔の文字列形式を等価の TimeSpan に変換します。Converts the string representation of a time interval to its TimeSpan equivalent.

Parse(ReadOnlySpan<Char>, IFormatProvider) Parse(ReadOnlySpan<Char>, IFormatProvider) Parse(ReadOnlySpan<Char>, IFormatProvider)
Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

指定したカルチャ固有の書式情報を使用して、時間間隔の文字列形式を等価の TimeSpan に変換します。Converts the string representation of a time interval to its TimeSpan equivalent by using the specified culture-specific format information.

Parse(String) Parse(String) Parse(String) Parse(String)

時間間隔の文字列形式を等価の TimeSpan に変換します。Converts the string representation of a time interval to its TimeSpan equivalent.

public:
 static TimeSpan Parse(System::String ^ s);
public static TimeSpan Parse (string s);
static member Parse : string -> TimeSpan
Public Shared Function Parse (s As String) As TimeSpan

パラメーター

s
String String String String

変換する時間間隔を指定する文字列。A string that specifies the time interval to convert.

戻り値

s に対応する時間間隔。A time interval that corresponds to s.

例外

s の形式は無効です。s has an invalid format.

sMinValue 未満の数値か、MaxValue より大きい数値を表します。s represents a number that is less than MinValue or greater than MaxValue.

- または --or- 日、時間、分、または秒のコンポーネントのうち少なくとも 1 つが、その有効範囲外です。At least one of the days, hours, minutes, or seconds components is outside its valid range.

次の例ではParse 、メソッドを使用して、文字列配列の各TimeSpan要素を値に変換します。The following example uses the Parse method to convert each element in a string array to a TimeSpan value. 現在のシステムカルチャが、現在のシステムカルチャが解析操作に与える影響を示すために、現在のシステムカルチャをクロアチア語-クロアチア ("hr-HR") と英語米国 ("en-us") に変更します。It changes the current system culture to Croatian - Croatia ("hr-HR") and English - United States ("en-US") to illustrate how the current system culture affects the parsing operation.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      string[] values = { "6", "6:12", "6:12:14", "6:12:14:45", 
                          "6.12:14:45", "6:12:14:45.3448", 
                          "6:12:14:45,3448", "6:34:14:45" };
      string[] cultureNames = { "hr-HR", "en-US"};
      
      // Change the current culture.
      foreach (string cultureName in cultureNames)
      {
         Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
         Console.WriteLine("Current Culture: {0}", 
                           Thread.CurrentThread.CurrentCulture.Name);
         foreach (string value in values)
         {
            try {
               TimeSpan ts = TimeSpan.Parse(value);
               Console.WriteLine("{0} --> {1}", value, ts.ToString("c"));
            }
            catch (FormatException) {
               Console.WriteLine("{0}: Bad Format", value);
            }   
            catch (OverflowException) {
               Console.WriteLine("{0}: Overflow", value);
            }
         } 
         Console.WriteLine();                                
      }
   }
}
// The example displays the following output:
//    Current Culture: hr-HR
//    6 --> 6.00:00:00
//    6:12 --> 06:12:00
//    6:12:14 --> 06:12:14
//    6:12:14:45 --> 6.12:14:45
//    6.12:14:45 --> 6.12:14:45
//    6:12:14:45.3448: Bad Format
//    6:12:14:45,3448 --> 6.12:14:45.3448000
//    6:34:14:45: Overflow
//    
//    Current Culture: en-US
//    6 --> 6.00:00:00
//    6:12 --> 06:12:00
//    6:12:14 --> 06:12:14
//    6:12:14:45 --> 6.12:14:45
//    6.12:14:45 --> 6.12:14:45
//    6:12:14:45.3448 --> 6.12:14:45.3448000
//    6:12:14:45,3448: Bad Format
//    6:34:14:45: Overflow
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Dim values() As String = { "6", "6:12", "6:12:14", "6:12:14:45", 
                                 "6.12:14:45", "6:12:14:45.3448", 
                                 "6:12:14:45,3448", "6:34:14:45" }
      Dim cultureNames() As String = { "hr-HR", "en-US"}
      
      ' Change the current culture.
      For Each cultureName As String In cultureNames
         Thread.CurrentThread.CurrentCulture = New CultureInfo(cultureName)
         Console.WriteLine("Current Culture: {0}", 
                           Thread.CurrentThread.CurrentCulture.Name)
         For Each value As String In values
            Try
               Dim ts As TimeSpan = TimeSpan.Parse(value)
               Console.WriteLine("{0} --> {1}", value, ts.ToString("c"))
            Catch e As FormatException
               Console.WriteLine("{0}: Bad Format", value)
            Catch e As OverflowException
               Console.WriteLine("{0}: Overflow", value)
            End Try      
         Next 
         Console.WriteLine()                                
      Next
   End Sub
End Module
' The example displays the following output:
'       Current Culture: hr-HR
'       6 --> 6.00:00:00
'       6:12 --> 06:12:00
'       6:12:14 --> 06:12:14
'       6:12:14:45 --> 6.12:14:45
'       6.12:14:45 --> 6.12:14:45
'       6:12:14:45.3448: Bad Format
'       6:12:14:45,3448 --> 6.12:14:45.3448000
'       6:34:14:45: Overflow
'       
'       Current Culture: en-US
'       6 --> 6.00:00:00
'       6:12 --> 06:12:00
'       6:12:14 --> 06:12:14
'       6:12:14:45 --> 6.12:14:45
'       6.12:14:45 --> 6.12:14:45
'       6:12:14:45.3448 --> 6.12:14:45.3448000
'       6:12:14:45,3448: Bad Format
'       6:34:14:45: Overflow

注釈

パラメーター sには、次の形式で時間間隔の指定が含まれています。The s parameter contains a time interval specification in the form:

[ws][-]{ d | [d.]hh:mm[:ss[.ff]]} [ws][ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]

角かっこ ([ および ]) 内の要素は省略可能です。Elements in square brackets ([ and ]) are optional. 中かっこ ({と}) で囲まれ、縦棒 (|) で区切られた代替の一覧から1つの選択が必要です。One selection from the list of alternatives enclosed in braces ({ and }) and separated by vertical bars (|) is required. 次の表は、それぞれの要素の説明です。The following table describes each element.

要素Element 説明Description
wsws 省略可能な空白。Optional white space.
- 負の値TimeSpanを示す省略可能なマイナス記号。An optional minus sign, which indicates a negative TimeSpan.
dd 0から10675199までの日数。Days, ranging from 0 to 10675199.
.. 日を時間から分離する、カルチャに依存するシンボル。A culture-sensitive symbol that separates days from hours. インバリアント形式では、ピリオド (".") 文字が使用されます。The invariant format uses a period (".") character.
hhhh 0から23までの時間。Hours, ranging from 0 to 23.
:: カルチャに依存する時間区切り記号。The culture-sensitive time separator symbol. インバリアント形式では、コロン (":") 文字が使用されます。The invariant format uses a colon (":") character.
mmmm 0から59までの分数。Minutes, ranging from 0 to 59.
ssss 0から59までの任意の秒数。Optional seconds, ranging from 0 to 59.
.. 秒の小数部から秒を区切る、カルチャに依存するシンボル。A culture-sensitive symbol that separates seconds from fractions of a second. インバリアント形式では、ピリオド (".") 文字が使用されます。The invariant format uses a period (".") character.
ffff 省略可能な秒の小数部で構成される10進数字です。Optional fractional seconds, consisting of one to seven decimal digits.

s引数が日の値でない場合は、時間と分の部分を含める必要があります。他のコンポーネントは省略可能です。If the s argument is not a day value only, it must include an hours and a minutes component; other components are optional. これらが存在する場合は、各時間コンポーネントの値が指定された範囲内に収まる必要があります。If they are present, the values of each time component must fall within a specified range. たとえば、 hh, hours 要素の値は 0 ~ 23 の範囲で指定する必要があります。For example, the value of hh, the hours component, must be between 0 and 23. このため、 Parseメソッドに "23:00:00" を渡すと、23時間の時間間隔が返されます。Because of this, passing "23:00:00" to the Parse method returns a time interval of 23 hours. 一方、"24:00:00" を渡すと、24日の時間間隔が返されます。On the other hand, passing "24:00:00" returns a time interval of 24 days. "24" は hours コンポーネントの範囲外であるため、days コンポーネントとして解釈されます。Because "24" is outside the range of the hours component, it is interpreted as the days component.

の各コンポーネントsは、以下の時間間隔TimeSpan.MinValue TimeSpan.MaxValueを総称して指定する必要があります。The components of s must collectively specify a time interval that is greater than or equal to TimeSpan.MinValue and less than or equal to TimeSpan.MaxValue.

メソッドParse(String)は、現在のsカルチャに対してカルチャ固有の各書式を使用して解析を試みます。The Parse(String) method tries to parse s by using each of the culture-specific formats for the current culture.

呼び出し元へのメモNotes to callers

解析される文字列内の時間間隔コンポーネントに7桁以上の数字が含まれている場合、.NET Framework 3.5 以前のバージョンでの解析操作は、.NET Framework 4 以降のバージョンでの解析操作とは動作が異なる場合があります。When a time interval component in the string to be parsed contains more than seven digits, parsing operations in the .NET Framework 3.5 and earlier versions may behave differently from parsing operations in the .NET Framework 4 and later versions. 場合によっては、.NET Framework 3.5 以前のバージョンで成功する解析操作が失敗し、 OverflowException .NET Framework 4 以降でをスローすることがあります。In some cases, parsing operations that succeed in the .NET Framework 3.5 and earlier versions may fail and throw an OverflowException in the .NET Framework 4 and later. それ以外の場合は、.NET Framework 3.5 以前FormatExceptionのバージョンでをスローする解析操作が失敗し、 OverflowException .NET Framework 4 以降でがスローされる可能性があります。In other cases, parsing operations that throw a FormatException in the .NET Framework 3.5 and earlier versions may fail and throw an OverflowException in the .NET Framework 4 and later. 次の例は、両方のシナリオを示しています。The following example illustrates both scenarios.

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

Parse(ReadOnlySpan<Char>, IFormatProvider) Parse(ReadOnlySpan<Char>, IFormatProvider) Parse(ReadOnlySpan<Char>, IFormatProvider)

public static TimeSpan Parse (ReadOnlySpan<char> input, IFormatProvider formatProvider = null);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> TimeSpan
Public Shared Function Parse (input As ReadOnlySpan(Of Char), Optional formatProvider As IFormatProvider = null) As TimeSpan

パラメーター

戻り値

Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

指定したカルチャ固有の書式情報を使用して、時間間隔の文字列形式を等価の TimeSpan に変換します。Converts the string representation of a time interval to its TimeSpan equivalent by using the specified culture-specific format information.

public:
 static TimeSpan Parse(System::String ^ input, IFormatProvider ^ formatProvider);
public static TimeSpan Parse (string input, IFormatProvider formatProvider);
static member Parse : string * IFormatProvider -> TimeSpan
Public Shared Function Parse (input As String, formatProvider As IFormatProvider) As TimeSpan

パラメーター

input
String String String String

変換する時間間隔を指定する文字列。A string that specifies the time interval to convert.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

カルチャ固有の書式情報を提供するオブジェクト。An object that supplies culture-specific formatting information.

戻り値

formatProvider の指定に従って変換された、input に対応する時間間隔。A time interval that corresponds to input, as specified by formatProvider.

例外

input の形式は無効です。input has an invalid format.

inputMinValue 未満の数値か、MaxValue より大きい数値を表します。input represents a number that is less than MinValue or greater than MaxValue.

- または --or- input の日、時間、分、または秒のコンポーネントのうち少なくとも 1 つが、その有効範囲外です。At least one of the days, hours, minutes, or seconds components in input is outside its valid range.

次の例では、オブジェクトCultureInfoの配列を定義し、メソッドのParse(String, IFormatProvider)呼び出しで各オブジェクトを使用して、文字列配列内の要素を解析します。The following example defines an array of CultureInfo objects, and uses each object in calls to the Parse(String, IFormatProvider) method to parse the elements in a string array. この例は、特定のカルチャの規則が書式設定操作にどのように影響するかを示しています。The example illustrates how the conventions of a specific culture influence the formatting operation.

using System;
using System.Globalization;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] values = { "6", "6:12", "6:12:14", "6:12:14:45", 
                          "6.12:14:45", "6:12:14:45.3448", 
                          "6:12:14:45,3448", "6:34:14:45" };
      CultureInfo[] cultures = { new CultureInfo("en-US"), 
                                 new CultureInfo("ru-RU"),
                                 CultureInfo.InvariantCulture };
      
      string header = String.Format("{0,-17}", "String");
      foreach (CultureInfo culture in cultures)
         header += culture.Equals(CultureInfo.InvariantCulture) ? 
                      String.Format("{0,20}", "Invariant") :
                      String.Format("{0,20}", culture.Name);
      Console.WriteLine(header);
      Console.WriteLine();
      
      foreach (string value in values)
      {
         Console.Write("{0,-17}", value);
         foreach (CultureInfo culture in cultures)
         {
            try {
               TimeSpan ts = TimeSpan.Parse(value, culture);
               Console.Write("{0,20}", ts.ToString("c"));
            }
            catch (FormatException) {
               Console.Write("{0,20}", "Bad Format");
            }   
            catch (OverflowException) {
               Console.Write("{0,20}", "Overflow");
            }      
         }
         Console.WriteLine();                                
      }
   }
}
// The example displays the following output:
//    String                          en-US               ru-RU           Invariant
//    
//    6                          6.00:00:00          6.00:00:00          6.00:00:00
//    6:12                         06:12:00            06:12:00            06:12:00
//    6:12:14                      06:12:14            06:12:14            06:12:14
//    6:12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
//    6.12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
//    6:12:14:45.3448    6.12:14:45.3448000          Bad Format  6.12:14:45.3448000
//    6:12:14:45,3448            Bad Format  6.12:14:45.3448000          Bad Format
//    6:34:14:45                   Overflow            Overflow            Overflow
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Dim values() As String = { "6", "6:12", "6:12:14", "6:12:14:45", 
                                 "6.12:14:45", "6:12:14:45.3448", 
                                 "6:12:14:45,3448", "6:34:14:45" }
      Dim cultures() As CultureInfo = { New CultureInfo("en-US"), 
                                        New CultureInfo("ru-RU"),
                                        CultureInfo.InvariantCulture }
      
      Dim header As String = String.Format("{0,-17}", "String")
      For Each culture As CultureInfo In cultures
         header += If(culture.Equals(CultureInfo.InvariantCulture), 
                      String.Format("{0,20}", "Invariant"),
                      String.Format("{0,20}", culture.Name))
      Next
      Console.WriteLine(header)
      Console.WriteLine()
      
      For Each value As String In values
         Console.Write("{0,-17}", value)
         For Each culture As CultureInfo In cultures
            Try
               Dim ts As TimeSpan = TimeSpan.Parse(value, culture)
               Console.Write("{0,20}", ts.ToString("c"))
            Catch e As FormatException
               Console.Write("{0,20}", "Bad Format")
            Catch e As OverflowException
               Console.Write("{0,20}", "Overflow")
            End Try      
         Next
         Console.WriteLine()                                
      Next
   End Sub
End Module
' The example displays the following output:
'    String                          en-US               ru-RU           Invariant
'    
'    6                          6.00:00:00          6.00:00:00          6.00:00:00
'    6:12                         06:12:00            06:12:00            06:12:00
'    6:12:14                      06:12:14            06:12:14            06:12:14
'    6:12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
'    6.12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
'    6:12:14:45.3448    6.12:14:45.3448000          Bad Format  6.12:14:45.3448000
'    6:12:14:45,3448            Bad Format  6.12:14:45.3448000          Bad Format
'    6:34:14:45                   Overflow            Overflow            Overflow

注釈

パラメーター inputには、次の形式で時間間隔の指定が含まれています。The input parameter contains a time interval specification in the form:

[ws][-]{ d | [d.]hh:mm[:ss[.ff]]} [ws][ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]

角かっこ ([および]) の要素は省略可能です。中かっこ ({と}) で囲まれ、縦棒 (|) で区切られた代替の一覧から1つの選択が必要です。Elements in square brackets ([ and ]) are optional; one selection from the list of alternatives enclosed in braces ({ and }) and separated by vertical bars (|) is required. 次の表は、それぞれの要素の説明です。The following table describes each element.

要素Element 説明Description
wsws 省略可能な空白。Optional white space.
- 負の値TimeSpanを示す省略可能なマイナス記号。An optional minus sign, which indicates a negative TimeSpan.
dd 0から10675199までの日数。Days, ranging from 0 to 10675199.
.. 日を時間から分離する、カルチャに依存するシンボル。A culture-sensitive symbol that separates days from hours. 既定値はピリオド (".") 文字です。The default value is a period (".") character.
hhhh 0から23までの時間。Hours, ranging from 0 to 23.
:: カルチャに依存する時間区切り記号。The culture-sensitive time separator symbol.
mmmm 0から59までの分数。Minutes, ranging from 0 to 59.
ssss 0から59までの任意の秒数。Optional seconds, ranging from 0 to 59.
.. 秒の小数部から秒を区切る、カルチャに依存するシンボル。A culture-sensitive symbol that separates seconds from fractions of a second. 既定値はピリオド (".") 文字です。The default value is a period (".") character.
ffff 省略可能な秒の小数部で構成される10進数字です。Optional fractional seconds, consisting of one to seven decimal digits.

input引数が日の値でない場合は、時間と分の部分を含める必要があります。他のコンポーネントは省略可能です。If the input argument is not a day value only, it must include an hours and a minutes component; other components are optional. これらが存在する場合は、各時間コンポーネントの値が指定された範囲内に収まる必要があります。If they are present, the values of each time component must fall within a specified range. たとえば、 hh, hours 要素の値は 0 ~ 23 の範囲で指定する必要があります。For example, the value of hh, the hours component, must be between 0 and 23. このため、 Parseメソッドに "23:00:00" を渡すと、23時間の時間間隔が返されます。Because of this, passing "23:00:00" to the Parse method returns a time interval of 23 hours. 一方、"24:00:00" を渡すと、24日の時間間隔が返されます。On the other hand, passing "24:00:00" returns a time interval of 24 days. "24" は hours コンポーネントの範囲外であるため、days コンポーネントとして解釈されます。Because "24" is outside the range of the hours component, it is interpreted as the days component.

の各コンポーネントinputは、以下の時間間隔TimeSpan.MinValue TimeSpan.MaxValueを総称して指定する必要があります。The components of input must collectively specify a time interval that is greater than or equal to TimeSpan.MinValue and less than or equal to TimeSpan.MaxValue.

メソッドParse(String)は、によっinput formatProviderて指定されたカルチャに対してカルチャ固有の各書式を使用して解析を試みます。The Parse(String) method tries to parse input by using each of the culture-specific formats for the culture specified by formatProvider.

パラメーターは、返される文字列の書式に関するカルチャ固有の情報を提供する実装です。IFormatProvider formatProviderThe formatProvider parameter is an IFormatProvider implementation that provides culture-specific information about the format of the returned string. パラメーター formatProviderには、次のいずれかを指定できます。The formatProvider parameter can be any of the following:

formatProvider DateTimeFormatInfoの場合は、現在のカルチャに関連付けられているオブジェクトが使用されます。 nullIf formatProvider is null, the DateTimeFormatInfo object that is associated with the current culture is used.

呼び出し元へのメモNotes to callers

解析される文字列内の時間間隔コンポーネントに7桁以上の数字が含まれている場合、.NET Framework 3.5 以前のバージョンでの解析操作は、.NET Framework 4 以降のバージョンでの解析操作とは動作が異なる場合があります。When a time interval component in the string to be parsed contains more than seven digits, parsing operations in the .NET Framework 3.5 and earlier versions may behave differently from parsing operations in the .NET Framework 4 and later versions. 場合によっては、.NET Framework 3.5 以前のバージョンで成功する解析操作が失敗し、 OverflowException .NET Framework 4 以降でをスローすることがあります。In some cases, parsing operations that succeed in the .NET Framework 3.5 and earlier versions may fail and throw an OverflowException in the .NET Framework 4 and later. それ以外の場合は、.NET Framework 3.5 以前FormatExceptionのバージョンでをスローする解析操作が失敗し、 OverflowException .NET Framework 4 以降でがスローされる可能性があります。In other cases, parsing operations that throw a FormatException in the .NET Framework 3.5 and earlier versions may fail and throw an OverflowException in the .NET Framework 4 and later. 次の例は、両方のシナリオを示しています。The following example illustrates both scenarios.

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

適用対象