TimeSpan.Parse Method (String)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Converts the string representation of a time interval to its TimeSpan equivalent.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- s
- Type: System.String
A string that specifies that specifies the time interval to convert.
| Exception | Condition |
|---|---|
| ArgumentNullException | s is null. |
| FormatException | s has an invalid format. |
| OverflowException | s represents a number less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. -or- At least one of the days, hours, minutes, or seconds components is outside its valid range. |
The s parameter contains a time interval specification of the form:
[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]
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 |
|---|---|
ws | Optional white space. |
- | An optional minus sign, which indicates a negative TimeSpan. |
d | Days, ranging from 0 to 10675199. |
. | A culture-sensitive symbol that separates days from hours. The invariant format uses a period (".") character. |
hh | Hours, ranging from 0 to 23. |
: | The culture-sensitive time separator symbol. The invariant format uses a colon (":") character. |
mm | Minutes, ranging from 0 to 59. |
ss | 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. |
ff | Optional fractional seconds, consisting of one to seven decimal digits. |
The components of s must collectively specify a time interval greater than or equal to TimeSpan.MinValue and less than or equal to TimeSpan.MaxValue.
The Parse(String) method first tries to parse s by using the invariant format. If this is not successful, it next tries each of the culture-specific formats for the current culture.
The following example uses the Parse method to create TimeSpan objects from valid TimeSpan strings and to raise exceptions from invalid TimeSpan strings.
// Example of the TimeSpan.Parse( string ) and TimeSpan.ToString( ) // methods. using System; class Example { static void ParseNDisplayTimeSpan(System.Windows.Controls.TextBlock outputBlock, string intervalStr) { // Write the first part of the output line. outputBlock.Text += String.Format("{0,20} ", intervalStr); // Parse the parameter, and then convert it back to a string. try { TimeSpan intervalVal = TimeSpan.Parse(intervalStr); string intervalToStr = intervalVal.ToString(); // Pad the end of the TimeSpan string with spaces if it // does not contain milliseconds. int pIndex = intervalToStr.IndexOf(':'); pIndex = intervalToStr.IndexOf('.', pIndex); if (pIndex < 0) intervalToStr += " "; outputBlock.Text += String.Format("{0,21}", intervalToStr) + "\n"; } catch (Exception ex) { // If Parse throws an exception, write the message. outputBlock.Text += ex.Message + "\n"; } } public static void Demo(System.Windows.Controls.TextBlock outputBlock) { outputBlock.Text += "This example of TimeSpan.Parse( string ) and \n" + "TimeSpan.ToString( ) " + "generates the following output.\n\n"; outputBlock.Text += String.Format("{0,20} {1,21}\n", "String to Parse", "TimeSpan or Exception"); outputBlock.Text += String.Format("{0,20} {1,21}\n", "---------------", "---------------------"); ParseNDisplayTimeSpan(outputBlock, "0"); ParseNDisplayTimeSpan(outputBlock, "14"); ParseNDisplayTimeSpan(outputBlock, "1:2:3"); ParseNDisplayTimeSpan(outputBlock, "0:0:0.250"); ParseNDisplayTimeSpan(outputBlock, "10.20:30:40.50"); ParseNDisplayTimeSpan(outputBlock, "99.23:59:59.9999999"); ParseNDisplayTimeSpan(outputBlock, "0023:0059:0059.0099"); ParseNDisplayTimeSpan(outputBlock, "24:0:0"); ParseNDisplayTimeSpan(outputBlock, "0:60:0"); ParseNDisplayTimeSpan(outputBlock, "0:0:60"); ParseNDisplayTimeSpan(outputBlock, "10:"); ParseNDisplayTimeSpan(outputBlock, ":10"); ParseNDisplayTimeSpan(outputBlock, "10:20:"); ParseNDisplayTimeSpan(outputBlock, ".123"); ParseNDisplayTimeSpan(outputBlock, "10."); ParseNDisplayTimeSpan(outputBlock, "10.12"); } } /* This example of TimeSpan.Parse( string ) and TimeSpan.ToString( ) generates the following output. String to Parse TimeSpan or Exception --------------- --------------------- 0 00:00:00 14 14.00:00:00 1:2:3 01:02:03 0:0:0.250 00:00:00.2500000 10.20:30:40.50 10.20:30:40.5000000 99.23:59:59.9999999 99.23:59:59.9999999 0023:0059:0059.0099 23:59:59.0099000 24:0:0 TimeSpan overflowed because the duration is too long. 0:60:0 TimeSpan overflowed because the duration is too long. 0:0:60 TimeSpan overflowed because the duration is too long. 10: Input string was not in a correct format. :10 Input string was not in a correct format. 10:20: Input string was not in a correct format. .123 Input string was not in a correct format. 10. Input string was not in a correct format. 10.12 Input string was not in a correct format. */