Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Стандартная строка формата TimeSpan использует один описатель формата для определения текстового представления значения TimeSpan, которое приводит к операции форматирования. Любая строка формата, содержащая несколько символов, включая пробелы, интерпретируется как настраиваемая строка формата TimeSpan. Дополнительные сведения см. в строках формата custom TimeSpan.
Строковые представления значений TimeSpan создаются вызовами перегрузки метода TimeSpan.ToString, а также методами, поддерживающими составное форматирование, например String.Format. Дополнительные сведения см. в типах форматирования и составныхформатирования. В следующем примере показано использование стандартных строк форматирования в операциях форматирования.
using System;
public class Example
{
public static void Main()
{
TimeSpan duration = new TimeSpan(1, 12, 23, 62);
string output = "Time of Travel: " + duration.ToString("c");
Console.WriteLine(output);
Console.WriteLine($"Time of Travel: {duration:c}");
}
}
// The example displays the following output:
// Time of Travel: 1.12:24:02
// Time of Travel: 1.12:24:02
Module Example
Public Sub Main()
Dim duration As New TimeSpan(1, 12, 23, 62)
Dim output As String = "Time of Travel: " + duration.ToString("c")
Console.WriteLine(output)
Console.WriteLine("Time of Travel: {0:c}", duration)
End Sub
End Module
' The example displays the following output:
' Time of Travel: 1.12:24:02
' Time of Travel: 1.12:24:02
Стандартные строки формата TimeSpan также используются методами TimeSpan.ParseExact и TimeSpan.TryParseExact для определения требуемого формата входных строк для операций синтаксического анализа. (Синтаксический анализ преобразует строковое представление значения в это значение.) В следующем примере показано использование стандартных строк форматирования в операциях синтаксического анализа.
using System;
public class Example
{
public static void Main()
{
string value = "1.03:14:56.1667";
TimeSpan interval;
try {
interval = TimeSpan.ParseExact(value, "c", null);
Console.WriteLine($"Converted '{value}' to {interval}");
}
catch (FormatException) {
Console.WriteLine($"{value}: Bad Format");
}
catch (OverflowException) {
Console.WriteLine($"{value}: Out of Range");
}
if (TimeSpan.TryParseExact(value, "c", null, out interval))
Console.WriteLine($"Converted '{value}' to {interval}");
else
Console.WriteLine($"Unable to convert {value} to a time interval.");
}
}
// The example displays the following output:
// Converted '1.03:14:56.1667' to 1.03:14:56.1667000
// Converted '1.03:14:56.1667' to 1.03:14:56.1667000
Module Example
Public Sub Main()
Dim value As String = "1.03:14:56.1667"
Dim interval As TimeSpan
Try
interval = TimeSpan.ParseExact(value, "c", Nothing)
Console.WriteLine("Converted '{0}' to {1}", value, interval)
Catch e As FormatException
Console.WriteLine("{0}: Bad Format", value)
Catch e As OverflowException
Console.WriteLine("{0}: Out of Range", value)
End Try
If TimeSpan.TryParseExact(value, "c", Nothing, interval) Then
Console.WriteLine("Converted '{0}' to {1}", value, interval)
Else
Console.WriteLine("Unable to convert {0} to a time interval.",
value)
End If
End Sub
End Module
' The example displays the following output:
' Converted '1.03:14:56.1667' to 1.03:14:56.1667000
' Converted '1.03:14:56.1667' to 1.03:14:56.1667000
В следующей таблице перечислены описатели стандартного интервала времени.
Описатель формата | Имя | Описание | Примеры |
---|---|---|---|
"c" | Формат константы (инвариантный) | Этот описатель не учитывает язык и региональные параметры. Он принимает форму [-][d'.']hh':'mm':'ss['.'fffffff] .(Строки формата t и T создают одинаковые результаты.) Дополнительные сведения: описатель формата константы ("c"). |
TimeSpan.Zero -> 00:00:00New TimeSpan(0, 0, 30, 0) -> 00:30:00New TimeSpan(3, 17, 25, 30, 500) -> 3.17:25:30.500000000 |
"g" | Общий короткий формат | Этот описатель выводит только необходимые данные. Он учитывает язык и региональные параметры и принимает форму [-][d':']h':'mm':'ss[.FFFFFFF] .Дополнительные сведения: Описатель формата общего формата ("g"). |
New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50.5 (en-US)New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50,5 (fr-FR)New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50.599 (en-US)New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50,599 (fr-FR) |
"G" | Общий длинный формат | Этот описатель всегда выводит дни и семь дробных цифр. Он учитывает язык и региональные параметры и принимает форму [-]d':'hh':'mm':'ss.fffffff .Дополнительные сведения: описатель общего формата ("G"). |
New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US)New TimeSpan(18, 30, 0) -> 0:18:30:0000000 (fr-FR) |
Описатель формата Константы ("c")
Описатель формата "c" возвращает строковое представление значения TimeSpan в следующей форме:
[-][d.]hh:mm:ss[.fffffff]
Элементы в квадратных скобках ([ и ]) являются необязательными. Период (.) и двоеточие (:) являются литеральными символами. В следующей таблице описаны оставшиеся элементы.
Элемент | Описание |
---|---|
- | Необязательный отрицательный знак, указывающий отрицательный интервал времени. |
дн. | Необязательное число дней без начальных нулей. |
чч | Количество часов, которое варьируется от "00" до "23". |
mm | Количество минут, которое варьируется от "00" до "59". |
ss | Количество секунд, которое диапазон от "0" до "59". |
fff | Необязательная дробная часть секунды. Его значение может варьироваться от "0000001" (один галок или один десять миллионов секунды) до "9999999" (999 999 999 999 десятимиллионтов секунды или один второй меньше одного галочки). |
В отличие от описателей формата g и G, описатель формата "c" не учитывает язык и региональные параметры. Он создает строковое представление значения TimeSpan, которое является инвариантным, и это обычно для версий до .NET Framework 4. "c" — строка формата по умолчанию TimeSpan; метод TimeSpan.ToString() форматирует значение интервала времени с помощью строки формата "c".
Примечание.
TimeSpan также поддерживает строки стандартного формата "t" и "T", которые идентичны в поведении со стандартной строкой формата "c".
Следующий пример создает экземпляры двух объектов TimeSpan, использует их для выполнения арифметических операций и отображает результат. В каждом случае используется составное форматирование для отображения значения TimeSpan с помощью описателя формата C.
using System;
public class Example
{
public static void Main()
{
TimeSpan interval1, interval2;
interval1 = new TimeSpan(7, 45, 16);
interval2 = new TimeSpan(18, 12, 38);
Console.WriteLine($"{interval1:c} - {interval2:c} = {interval1 - interval2:c}");
Console.WriteLine($"{interval1:c} + {interval2:c} = {interval1 + interval2:c}");
interval1 = new TimeSpan(0, 0, 1, 14, 365);
interval2 = TimeSpan.FromTicks(2143756);
Console.WriteLine($"{interval1:c} + {interval2:c} = {interval1 + interval2:c}");
}
}
// The example displays the following output:
// 07:45:16 - 18:12:38 = -10:27:22
// 07:45:16 + 18:12:38 = 1.01:57:54
// 00:01:14.3650000 + 00:00:00.2143756 = 00:01:14.5793756
Module Example
Public Sub Main()
Dim interval1, interval2 As TimeSpan
interval1 = New TimeSpan(7, 45, 16)
interval2 = New TimeSpan(18, 12, 38)
Console.WriteLine("{0:c} - {1:c} = {2:c}", interval1,
interval2, interval1 - interval2)
Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1,
interval2, interval1 + interval2)
interval1 = New TimeSpan(0, 0, 1, 14, 365)
interval2 = TimeSpan.FromTicks(2143756)
Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1,
interval2, interval1 + interval2)
End Sub
End Module
' The example displays the following output:
' 07:45:16 - 18:12:38 = -10:27:22
' 07:45:16 + 18:12:38 = 1.01:57:54
' 00:01:14.3650000 + 00:00:00.2143756 = 00:01:14.5793756
Описатель формата "Общие короткие" ("g")
Описатель формата "g" TimeSpan возвращает строковое представление значения TimeSpan в компактной форме, включая только необходимые элементы. Он имеет следующую форму:
[-][d:]h:mm:ss[.FFFFFFF]
Элементы в квадратных скобках ([ и ]) являются необязательными. Двоеточие (:) является литеральным символом. В следующей таблице описаны оставшиеся элементы.
Элемент | Описание |
---|---|
- | Необязательный отрицательный знак, указывающий отрицательный интервал времени. |
дн. | Необязательное число дней без начальных нулей. |
ч | Количество часов, которое варьируется от "0" до "23", без начальных нулей. |
mm | Количество минут, которое варьируется от "00" до "59". |
ss | Количество секунд, которое диапазон от "00" до "59". |
. | Разделитель дробных секунд. Это эквивалентно свойству NumberDecimalSeparator указанного языка и региональных параметров без переопределения пользователей. |
FFFFFFF | Доля секунд. Отображаются как можно меньше цифр. |
Как и описатель формата G, описатель формата "g" локализован. Его разделитель дробных секунд основан на текущем языке и региональных параметрах или NumberDecimalSeparator свойстве указанного языка и региональных параметров.
Следующий пример создает экземпляры двух объектов TimeSpan, использует их для выполнения арифметических операций и отображает результат. В каждом случае используется составное форматирование для отображения значения TimeSpan с помощью описателя формата g. Кроме того, он форматирует значение TimeSpan с помощью соглашений о форматировании текущей системы и региональных параметров (которые, в данном случае, являются английскими - Соединенными Штатами или en-US) и французскими - Францией (fr-FR) культурой.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
TimeSpan interval1, interval2;
interval1 = new TimeSpan(7, 45, 16);
interval2 = new TimeSpan(18, 12, 38);
Console.WriteLine($"{interval1:g} - {interval2:g} = {interval1 - interval2:g}");
Console.WriteLine(String.Format(new CultureInfo("fr-FR"),
"{0:g} + {1:g} = {2:g}", interval1,
interval2, interval1 + interval2));
interval1 = new TimeSpan(0, 0, 1, 14, 36);
interval2 = TimeSpan.FromTicks(2143756);
Console.WriteLine($"{interval1:g} + {interval2:g} = {interval1 + interval2:g}");
}
}
// The example displays the following output:
// 7:45:16 - 18:12:38 = -10:27:22
// 7:45:16 + 18:12:38 = 1:1:57:54
// 0:01:14.036 + 0:00:00.2143756 = 0:01:14.2503756
Imports System.Globalization
Module Example
Public Sub Main()
Dim interval1, interval2 As TimeSpan
interval1 = New TimeSpan(7, 45, 16)
interval2 = New TimeSpan(18, 12, 38)
Console.WriteLine("{0:g} - {1:g} = {2:g}", interval1,
interval2, interval1 - interval2)
Console.WriteLine(String.Format(New CultureInfo("fr-FR"),
"{0:g} + {1:g} = {2:g}", interval1,
interval2, interval1 + interval2))
interval1 = New TimeSpan(0, 0, 1, 14, 36)
interval2 = TimeSpan.FromTicks(2143756)
Console.WriteLine("{0:g} + {1:g} = {2:g}", interval1,
interval2, interval1 + interval2)
End Sub
End Module
' The example displays the following output:
' 7:45:16 - 18:12:38 = -10:27:22
' 7:45:16 + 18:12:38 = 1:1:57:54
' 0:01:14.036 + 0:00:00.2143756 = 0:01:14.2503756
Описатель общего формата long ("G")
Описатель формата "G" возвращает строковое представление значения TimeSpanTimeSpan в длинной форме, которая всегда включает как дни, так и дробные секунды. Строка, которая приводит к описатель стандартного формата G, имеет следующую форму:
[-]d:hh:mm:ss.fffffff
Элементы в квадратных скобках ([ и ]) являются необязательными. Двоеточие (:) является литеральным символом. В следующей таблице описаны оставшиеся элементы.
Элемент | Описание |
---|---|
- | Необязательный отрицательный знак, указывающий отрицательный интервал времени. |
дн. | Количество дней без начальных нулей. |
чч | Количество часов, которое варьируется от "00" до "23". |
mm | Количество минут, которое варьируется от "00" до "59". |
ss | Количество секунд, которое диапазон от "00" до "59". |
. | Разделитель дробных секунд. Это эквивалентно свойству NumberDecimalSeparator указанного языка и региональных параметров без переопределения пользователей. |
fff | Доля секунд. |
Как и описатель формата G, описатель формата "g" локализован. Его разделитель дробных секунд основан на текущем языке и региональных параметрах или NumberDecimalSeparator свойстве указанного языка и региональных параметров.
Следующий пример создает экземпляры двух объектов TimeSpan, использует их для выполнения арифметических операций и отображает результат. В каждом случае используется составное форматирование для отображения значения TimeSpan с помощью описателя формата G. Кроме того, он форматирует значение TimeSpan с помощью соглашений о форматировании текущей системы и региональных параметров (которые, в данном случае, являются английскими - Соединенными Штатами или en-US) и французскими - Францией (fr-FR) культурой.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
TimeSpan interval1, interval2;
interval1 = new TimeSpan(7, 45, 16);
interval2 = new TimeSpan(18, 12, 38);
Console.WriteLine($"{interval1:G} - {interval2:G} = {interval1 - interval2:G}");
Console.WriteLine(String.Format(new CultureInfo("fr-FR"),
"{0:G} + {1:G} = {2:G}", interval1,
interval2, interval1 + interval2));
interval1 = new TimeSpan(0, 0, 1, 14, 36);
interval2 = TimeSpan.FromTicks(2143756);
Console.WriteLine($"{interval1:G} + {interval2:G} = {interval1 + interval2:G}");
}
}
// The example displays the following output:
// 0:07:45:16.0000000 - 0:18:12:38.0000000 = -0:10:27:22.0000000
// 0:07:45:16,0000000 + 0:18:12:38,0000000 = 1:01:57:54,0000000
// 0:00:01:14.0360000 + 0:00:00:00.2143756 = 0:00:01:14.2503756
Imports System.Globalization
Module Example
Public Sub Main()
Dim interval1, interval2 As TimeSpan
interval1 = New TimeSpan(7, 45, 16)
interval2 = New TimeSpan(18, 12, 38)
Console.WriteLine("{0:G} - {1:G} = {2:G}", interval1,
interval2, interval1 - interval2)
Console.WriteLine(String.Format(New CultureInfo("fr-FR"),
"{0:G} + {1:G} = {2:G}", interval1,
interval2, interval1 + interval2))
interval1 = New TimeSpan(0, 0, 1, 14, 36)
interval2 = TimeSpan.FromTicks(2143756)
Console.WriteLine("{0:G} + {1:G} = {2:G}", interval1,
interval2, interval1 + interval2)
End Sub
End Module
' The example displays the following output:
' 0:07:45:16.0000000 - 0:18:12:38.0000000 = -0:10:27:22.0000000
' 0:07:45:16,0000000 + 0:18:12:38,0000000 = 1:01:57:54,0000000
' 0:00:01:14.0360000 + 0:00:00:00.2143756 = 0:00:01:14.2503756