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") と英語 - 米国 ("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 から 10,675, 199 までの日数。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 省略可能な秒の小数部を 1 ~ 7 桁です。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時間の部分が 0 ~ 23 の範囲にする必要があります。For example, the value of hh, the hours component, must be between 0 and 23. このを渡すのため"23: 00:00"に、 Parse 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」は時間の部分の範囲外であるために、その日の部分として解釈されます。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 4 およびそれ以降のバージョンから異なる動作可能性があります解析操作では、.NET Framework 3.5 およびそれ以前のバージョン。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. それ以外の場合は、解析操作をスローする、FormatExceptionで .NET Framework 3.5 およびそれ以前のバージョンが失敗して、スロー、 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:
//       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 から 10,675, 199 までの日数。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 省略可能な秒の小数部を 1 ~ 7 桁です。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時間の部分が 0 ~ 23 の範囲にする必要があります。For example, the value of hh, the hours component, must be between 0 and 23. このを渡すのため"23: 00:00"に、 Parse 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」は時間の部分の範囲外であるために、その日の部分として解釈されます。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.

formatProviderパラメーターは、IFormatProvider返される文字列の書式設定に関するカルチャに固有の情報を提供する実装。The 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:

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

呼び出し時の注意Notes to callers

時間間隔コンポーネントに解析する文字列内に複数の 7 桁の数字が含まれている場合は、解析操作では、.NET Framework 4 およびそれ以降のバージョンから異なる動作可能性があります解析操作では、.NET Framework 3.5 およびそれ以前のバージョン。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. それ以外の場合は、解析操作をスローする、FormatExceptionで .NET Framework 3.5 およびそれ以前のバージョンが失敗して、スロー、 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:
//       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

適用対象