TimeSpan.Parse Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует строковое представление интервала времени в его эквивалент TimeSpan.
Перегрузки
Parse(String) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Преобразует представление диапазона интервала времени в его эквивалент TimeSpan, используя указанные сведения о форматировании, связанные с языком и региональными параметрами. |
Parse(String, IFormatProvider) |
Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные сведения о форматировании, связанные с языком и региональными параметрами. |
Parse(String)
Преобразует строковое представление интервала времени в его эквивалент TimeSpan.
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
Строка, которая указывает преобразуемый интервал времени.
Возвращаемое значение
Интервал времени, соответствующий параметру s
.
Исключения
s
имеет значение null
.
Параметр s
задан в недопустимом формате.
s
представляет число, которое меньше TimeSpan.MinValue или больше TimeSpan.MaxValue.
-или- Как минимум один из компонентов дней, часов, минут или секунд выходит за пределы допустимого диапазона.
Примеры
В следующем примере метод используется Parse для преобразования каждого элемента в строковом массиве TimeSpan в значение. Он изменяет текущий язык и региональные параметры системы на хорватский - Хорватию ("hr-HR") и английский - США ("en-US"), чтобы проиллюстрировать, как текущий язык и региональные параметры системы влияют на операцию синтаксического анализа.
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
open System
open System.Globalization
open System.Threading
let 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" |]
let cultureNames = [| "hr-HR"; "en-US" |]
// Change the current culture.
for cultureName in cultureNames do
Thread.CurrentThread.CurrentCulture <- CultureInfo cultureName
printfn $"Current Culture: {Thread.CurrentThread.CurrentCulture.Name}"
for value in values do
try
let ts = TimeSpan.Parse value
printfn $"{value} --> {ts:c}"
with
| :? FormatException ->
printfn $"{value}: Bad Format"
| :? OverflowException ->
printfn $"{value}: Overflow"
printfn ""
// 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
содержит спецификацию интервала времени в форме:
[ws] [-] { d | [d.] чч:мм[:сс[.ff]] }[ws]
Элементы в квадратных скобках ([и]) являются необязательными. Требуется один выбор из списка альтернативных вариантов, заключенных в фигурные скобки ({ и }) и разделенных вертикальными полосами (|). Каждый из элементов описан в таблице ниже.
Элемент | Описание |
---|---|
ws | Необязательный пробел. |
- | Необязательный знак минуса, указывающий на отрицательный TimeSpan. |
d | Дни в диапазоне от 0 до 10675199. |
. | Символ с учетом языка и региональных параметров, который отделяет дни от часов. В инвариантном формате используется символ точки ("."). |
hh | Часы, от 0 до 23. |
: | Символ разделителя времени с учетом языка и региональных параметров. Инвариантный формат использует двоеточие (":"). |
мм | Минуты в диапазоне от 0 до 59. |
ss | Необязательные секунды от 0 до 59. |
. | Символ с учетом языка и региональных параметров, который отделяет секунды от долей секунды. В инвариантном формате используется символ точки ("."). |
Ff | Необязательные дробные секунды, состоящие из одной до семи десятичных цифр. |
s
Если аргумент не является только значением дня, он должен включать часы и минуты компонента; другие компоненты являются необязательными. Если они присутствуют, значения каждого компонента времени должны находиться в указанном диапазоне. Например, значение hh, компонент часов, должен находиться в диапазоне от 0 до 23. Из-за этого передача метода "23:00:00" Parse возвращает интервал времени в 23 часа. С другой стороны, передача "24:00:00" возвращает интервал времени в 24 дня. Так как "24" находится за пределами диапазона компонента часов, он интерпретируется как компонент дней.
Компоненты s
должны совместно указывать интервал времени, который больше или равен TimeSpan.MinValue и меньше или равен TimeSpan.MaxValue.
Метод Parse(String) пытается проанализировать s
с помощью каждого из форматов языка и региональных параметров для текущего языка и региональных параметров.
Примечания к вызывающим абонентам
Если компонент интервала времени в строке для синтаксического анализа содержит более семи цифр, операции синтаксического анализа в платформа .NET Framework 3.5 и более ранних версиях могут вести себя по-разному от операций синтаксического анализа в платформа .NET Framework 4 и более поздних версиях. В некоторых случаях операции синтаксического анализа, которые выполняются в платформа .NET Framework 3.5 и более ранних версиях, могут завершиться ошибкой и вызвать OverflowException в платформа .NET Framework 4 и более поздних версий. В других случаях операции синтаксического анализа, которые вызывают FormatException исключение в платформа .NET Framework 3.5 и более ранних версиях, могут завершиться ошибкой и вызвать OverflowException в платформа .NET Framework 4 и более поздних версий. В следующем примере показаны оба сценария.
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
open System
let values = [| "000000006"; "12.12:12:12.12345678" |]
for value in values do
try
let interval = TimeSpan.Parse value
printfn $"{value} --> {interval}"
with
| :? FormatException ->
printfn $"{value}: Bad Format"
| :? OverflowException ->
printfn $"{value}: Overflow"
// 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)
Преобразует представление диапазона интервала времени в его эквивалент TimeSpan, используя указанные сведения о форматировании, связанные с языком и региональными параметрами.
public static TimeSpan Parse (ReadOnlySpan<char> input, IFormatProvider? formatProvider = default);
public static TimeSpan Parse (ReadOnlySpan<char> input, IFormatProvider formatProvider = default);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> TimeSpan
Public Shared Function Parse (input As ReadOnlySpan(Of Char), Optional formatProvider As IFormatProvider = Nothing) As TimeSpan
Параметры
- input
- ReadOnlySpan<Char>
Диапазон, содержащий символы, которые представляют интервал времени для преобразования.
- formatProvider
- IFormatProvider
Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.
Возвращаемое значение
Интервал времени, соответствующий параметру input
, в виде, заданном параметром formatProvider
.
Реализации
Применяется к
Parse(String, IFormatProvider)
Преобразует строковое представление интервала времени в его эквивалент TimeSpan, используя указанные сведения о форматировании, связанные с языком и региональными параметрами.
public:
static TimeSpan Parse(System::String ^ input, IFormatProvider ^ formatProvider);
public:
static TimeSpan Parse(System::String ^ input, IFormatProvider ^ formatProvider) = IParsable<TimeSpan>::Parse;
public static TimeSpan Parse (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
Строка, которая указывает преобразуемый интервал времени.
- formatProvider
- IFormatProvider
Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.
Возвращаемое значение
Интервал времени, соответствующий параметру input
, в виде, заданном параметром formatProvider
.
Реализации
Исключения
input
имеет значение null
.
Параметр input
задан в недопустимом формате.
input
представляет число, которое меньше TimeSpan.MinValue или больше TimeSpan.MaxValue.
-или-
Хотя бы один из компонентов дней, часов, минут или секунд в input
выходит за пределы допустимого диапазона.
Примеры
В следующем примере определяется массив объектов и каждый объект в вызовах CultureInfo Parse(String, IFormatProvider) метода используется для анализа элементов в строковом массиве. В этом примере показано, как соглашения определенного языка и региональных параметров влияют на операцию форматирования.
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
open System
open System.Globalization
open System.Text.RegularExpressions
let 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" |]
let cultures =
[| CultureInfo "en-US"
CultureInfo "ru-RU"
CultureInfo.InvariantCulture |]
let mutable header = $"""{"String",-17}"""
for culture in cultures do
header <- header +
if culture.Equals CultureInfo.InvariantCulture then
$"""{"Invariant",20}"""
else
$"{culture.Name,20}"
printfn $"{header}\m"
for value in values do
printf $"{value,-17}"
for culture in cultures do
try
let ts = TimeSpan.Parse(value, culture)
printf $"{ts,20:c}"
with
| :? FormatException ->
printf $"""{"Bad Format",20}"""
| :? OverflowException ->
printf $"""{"Overflow",20}"""
printfn ""
// 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
содержит спецификацию интервала времени в форме:
[ws] [-] { d | [d.] чч:мм[:сс[.ff]] }[ws]
Элементы в квадратных скобках ([ и ]) являются необязательными; требуется один выбор из списка альтернативных вариантов, заключенных в фигурные скобки ({ и }) и разделенных вертикальными полосами (|). Каждый из элементов описан в таблице ниже.
Элемент | Описание |
---|---|
ws | Необязательный пробел. |
- | Необязательный знак минуса, указывающий на отрицательный TimeSpan. |
d | Дни в диапазоне от 0 до 10675199. |
. | Символ с учетом языка и региональных параметров, который отделяет дни от часов. Значение по умолчанию — символ точки ("."). |
hh | Часы, от 0 до 23. |
: | Символ разделителя времени с учетом языка и региональных параметров. |
мм | Минуты в диапазоне от 0 до 59. |
ss | Необязательные секунды от 0 до 59. |
. | Символ с учетом языка и региональных параметров, который отделяет секунды от долей секунды. Значение по умолчанию — символ точки ("."). |
Ff | Необязательные дробные секунды, состоящие из одной до семи десятичных цифр. |
input
Если аргумент не является только значением дня, он должен включать часы и минуты компонента; другие компоненты являются необязательными. Если они присутствуют, значения каждого компонента времени должны находиться в указанном диапазоне. Например, значение hh, компонент часов, должен находиться в диапазоне от 0 до 23. Из-за этого передача метода "23:00:00" Parse возвращает интервал времени в 23 часа. С другой стороны, передача "24:00:00" возвращает интервал времени в 24 дня. Так как "24" находится за пределами диапазона компонента часов, он интерпретируется как компонент дней.
Компоненты input
должны совместно указывать интервал времени, который больше или равен TimeSpan.MinValue и меньше или равен TimeSpan.MaxValue.
Метод Parse(String) пытается проанализировать input
с помощью каждого из форматов языка и региональных параметров для языка и региональных параметров, заданных параметром formatProvider
.
Параметр formatProvider
представляет собой IFormatProvider реализацию, которая предоставляет сведения о формате возвращаемой строки с учетом языка и региональных параметров. Параметр formatProvider
может быть любым из следующих:
Объект CultureInfo , представляющий язык и региональные параметры, соглашения о форматировании которых должны отражаться в возвращаемой строке. Объект DateTimeFormatInfo , CultureInfo.DateTimeFormat возвращаемый свойством, определяет форматирование возвращаемой строки.
DateTimeFormatInfo Объект, определяющий форматирование возвращаемой строки.
Пользовательский объект, реализующий IFormatProvider интерфейс. Его IFormatProvider.GetFormat метод возвращает DateTimeFormatInfo объект, предоставляющий сведения о форматировании.
Если formatProvider
это так null
, используется объект, DateTimeFormatInfo связанный с текущим языком и региональными параметрами.
Примечания к вызывающим абонентам
Если компонент интервала времени в строке для синтаксического анализа содержит более семи цифр, операции синтаксического анализа в платформа .NET Framework 3.5 и более ранних версиях могут вести себя по-разному от операций синтаксического анализа в платформа .NET Framework 4 и более поздних версиях. В некоторых случаях операции синтаксического анализа, которые выполняются в платформа .NET Framework 3.5 и более ранних версиях, могут завершиться ошибкой и вызвать OverflowException в платформа .NET Framework 4 и более поздних версий. В других случаях операции синтаксического анализа, которые вызывают FormatException исключение в платформа .NET Framework 3.5 и более ранних версиях, могут завершиться ошибкой и вызвать OverflowException в платформа .NET Framework 4 и более поздних версий. В следующем примере показаны оба сценария.
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
open System
let values = [| "000000006"; "12.12:12:12.12345678" |]
for value in values do
try
let interval = TimeSpan.Parse value
printfn $"{value} --> {interval}"
with
| :? FormatException ->
printfn $"{value}: Bad Format"
| :? OverflowException ->
printfn $"{value}: Overflow"
// 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