Строки настраиваемых форматов даты и времениCustom date and time format strings

Строки форматов даты и времени определяют текстовое представление значений DateTime и DateTimeOffset, получаемое после операции форматирования.A date and time format string defines the text representation of a DateTime or DateTimeOffset value that results from a formatting operation. Также они могут определять представление значения даты и времени, необходимое при операции синтаксического анализа для успешного преобразования строки в дату и время.It can also define the representation of a date and time value that is required in a parsing operation in order to successfully convert the string to a date and time. Строка настраиваемого формата состоит из одного или нескольких настраиваемых описателей формата даты и времени.A custom format string consists of one or more custom date and time format specifiers. Любая строка, не являющаяся строкой стандартного формата даты и времени, воспринимается как строка настраиваемого формата даты и времени.Any string that is not a standard date and time format string is interpreted as a custom date and time format string.

Совет

Вы можете загрузить Служебную программу форматирования, которая применяет строки формата к значениям даты и времени или числовым значениям и отображает результирующую строку.You can download the Formatting Utility, an application that enables you to apply format strings to either date and time or numeric values and displays the result string.

Строки настраиваемого формата даты и времени могут использоваться как со значением DateTime, так и со значением DateTimeOffset.Custom date and time format strings can be used with both DateTime and DateTimeOffset values.

Примечание

Некоторые примеры C# в этой статье выполняются во встроенном средстве выполнения кода и на тестовой площадке Try.NET.Some of the C# examples in this article run in the Try.NET inline code runner and playground. Нажмите на кнопку Выполнить, чтобы выполнить пример в интерактивном окне.Select the Run button to run an example in an interactive window. После выполнения кода вы можете изменить его и выполнить измененный код, снова нажав на кнопку Выполнить.Once you execute the code, you can modify it and run the modified code by selecting Run again. Либо в интерактивном окне выполняется измененный код, либо, если компиляция завершается с ошибкой, в интерактивном окне отображаются все сообщения об ошибках компилятора C#.The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

Местный часовой пояс площадки и средства запуска встроенного кода Try.NET указан в формате UTC.The local time zone of the Try.NET inline code runner and playground is Coordinated Universal Time, or UTC. Это может повлиять на работу и выходные данные примеров, иллюстрирующих DateTime, DateTimeOffset, типы TimeZoneInfo и их члены.This may affect the behavior and the output of examples that illustrate the DateTime, DateTimeOffset, and TimeZoneInfo types and their members.

В операциях форматирования строки настраиваемого формата даты и времени можно использовать с методом ToString экземпляра даты и времени или с методом, поддерживающим составное форматирование.In formatting operations, custom date and time format strings can be used either with the ToString method of a date and time instance or with a method that supports composite formatting. В следующем примере демонстрируются оба варианта использования.The following example illustrates both uses.

DateTime thisDate1 = new DateTime(2011, 6, 10);
Console.WriteLine("Today is " + thisDate1.ToString("MMMM dd, yyyy") + ".");
 
DateTimeOffset thisDate2 = new DateTimeOffset(2011, 6, 10, 15, 24, 16, 
                                              TimeSpan.Zero);
Console.WriteLine("The current date and time: {0:MM/dd/yy H:mm:ss zzz}", 
                   thisDate2); 
// The example displays the following output:
//    Today is June 10, 2011.
//    The current date and time: 06/10/11 15:24:16 +00:00
 Dim thisDate1 As Date = #6/10/2011#
 Console.WriteLine("Today is " + thisDate1.ToString("MMMM dd, yyyy") + ".")
 
 Dim thisDate2 As New DateTimeOffset(2011, 6, 10, 15, 24, 16, TimeSpan.Zero)
 Console.WriteLine("The current date and time: {0:MM/dd/yy H:mm:ss zzz}", 
                   thisDate2) 
 ' The example displays the following output:
'    Today is June 10, 2011.
'    The current date and time: 06/10/11 15:24:16 +00:00

В операциях синтаксического анализа пользовательские строки формата даты и времени можно использовать с методами DateTime.ParseExact, DateTime.TryParseExact, DateTimeOffset.ParseExact и DateTimeOffset.TryParseExact.In parsing operations, custom date and time format strings can be used with the DateTime.ParseExact, DateTime.TryParseExact, DateTimeOffset.ParseExact, and DateTimeOffset.TryParseExact methods. Чтобы операция синтаксического анализа прошла успешно, эти методы требуют, чтобы входная строка строго соответствовала конкретному шаблону.These methods require that an input string conforms exactly to a particular pattern for the parse operation to succeed. В следующем примере демонстрируется вызов метода DateTimeOffset.ParseExact(String, String, IFormatProvider) для анализа даты, которая должна включать в себя указание дня, месяца и года из двух цифр.The following example illustrates a call to the DateTimeOffset.ParseExact(String, String, IFormatProvider) method to parse a date that must include a day, a month, and a two-digit year.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] dateValues = { "30-12-2011", "12-30-2011", 
                              "30-12-11", "12-30-11" };
      string pattern = "MM-dd-yy";
      DateTime parsedDate;
      
      foreach (var dateValue in dateValues) {
         if (DateTime.TryParseExact(dateValue, pattern, null, 
                                   DateTimeStyles.None, out parsedDate))
            Console.WriteLine("Converted '{0}' to {1:d}.", 
                              dateValue, parsedDate);
         else
            Console.WriteLine("Unable to convert '{0}' to a date and time.", 
                              dateValue);
      }
   }
}
// The example displays the following output:
//    Unable to convert '30-12-2011' to a date and time.
//    Unable to convert '12-30-2011' to a date and time.
//    Unable to convert '30-12-11' to a date and time.
//    Converted '12-30-11' to 12/30/2011.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim dateValues() As String = { "30-12-2011", "12-30-2011", 
                                      "30-12-11", "12-30-11" }
      Dim pattern As String = "MM-dd-yy"
      Dim parsedDate As Date
      
      For Each dateValue As String In dateValues
         If DateTime.TryParseExact(dateValue, pattern, Nothing, 
                                   DateTimeStyles.None, parsedDate) Then
            Console.WriteLine("Converted '{0}' to {1:d}.", 
                              dateValue, parsedDate)
         Else
            Console.WriteLine("Unable to convert '{0}' to a date and time.", 
                              dateValue)
         End If                                                         
      Next
   End Sub
End Module
' The example displays the following output:
'    Unable to convert '30-12-2011' to a date and time.
'    Unable to convert '12-30-2011' to a date and time.
'    Unable to convert '30-12-11' to a date and time.
'    Converted '12-30-11' to 12/30/2011.

В следующей таблице приведены настраиваемые описатели формата даты и времени с примерами строк, формируемых каждым описателем формата.The following table describes the custom date and time format specifiers and displays a result string produced by each format specifier. По умолчанию результирующие строки отражают соглашения о форматировании для языка и региональных параметров en-US.By default, result strings reflect the formatting conventions of the en-US culture. Если конкретный описатель формата создает локализованную строку, то в примере также указываются язык и региональные параметры, для которых применяется полученная строка.If a particular format specifier produces a localized result string, the example also notes the culture to which the result string applies. Дополнительные сведения об использовании настраиваемых строк формата даты и времени см. в подразделе Примечания.For more information about using custom date and time format strings, see the Notes section.

Описатель форматаFormat specifier ОПИСАНИЕDescription ПримерыExamples
"d""d" День месяца, в диапазоне от 1 до 31.The day of the month, from 1 through 31.

Дополнительная информация: Настраиваемый описатель формата "d".More information: The "d" Custom Format Specifier.
2009-06-01T13:45:30 -> 12009-06-01T13:45:30 -> 1

2009-06-15T13:45:30 -> 152009-06-15T13:45:30 -> 15
"dd""dd" День месяца, в диапазоне от 01 до 31.The day of the month, from 01 through 31.

Дополнительная информация: Настраиваемый описатель формата "dd".More information: The "dd" Custom Format Specifier.
2009-06-01T13:45:30 -> 012009-06-01T13:45:30 -> 01

2009-06-15T13:45:30 -> 152009-06-15T13:45:30 -> 15
"ddd""ddd" Сокращенное название дня недели.The abbreviated name of the day of the week.

Дополнительная информация: Настраиваемый описатель формата "ddd".More information: The "ddd" Custom Format Specifier.
2009-06-15T13:45:30 -> Mon (en-US)2009-06-15T13:45:30 -> Mon (en-US)

2009-06-15T13:45:30 -> Пн (ru-RU)2009-06-15T13:45:30 -> Пн (ru-RU)

2009-06-15T13:45:30 -> lun.2009-06-15T13:45:30 -> lun. (fr-FR)(fr-FR)
"dddd""dddd" Полное название дня недели.The full name of the day of the week.

Дополнительная информация: Настраиваемый описатель формата "dddd".More information: The "dddd" Custom Format Specifier.
2009-06-15T13:45:30 -> Monday (en-US)2009-06-15T13:45:30 -> Monday (en-US)

2009-06-15T13:45:30 -> понедельник (ru-RU)2009-06-15T13:45:30 -> понедельник (ru-RU)

2009-06-15T13:45:30 -> lundi (fr-FR)2009-06-15T13:45:30 -> lundi (fr-FR)
"f""f" Десятые доли секунды в значении даты и времени.The tenths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "f".More information: The "f" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 62009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.05 -> 02009-06-15T13:45:30.05 -> 0
"ff""ff" Сотые доли секунды в значении даты и времени.The hundredths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "ff".More information: The "ff" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 612009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> 002009-06-15T13:45:30.0050000 -> 00
"fff""fff" Тысячные доли секунды в значении даты и времени.The milliseconds in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "fff".More information: The "fff" Custom Format Specifier.
6/15/2009 13:45:30.617 -> 6176/15/2009 13:45:30.617 -> 617

6/15/2009 13:45:30.0005 -> 0006/15/2009 13:45:30.0005 -> 000
"ffff""ffff" Десятитысячные доли секунды в значении даты и времени.The ten thousandths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "ffff".More information: The "ffff" Custom Format Specifier.
2009-06-15T13:45:30.6175000 -> 61752009-06-15T13:45:30.6175000 -> 6175

2009-06-15T13:45:30.0000500 -> 00002009-06-15T13:45:30.0000500 -> 0000
"fffff""fffff" Стотысячные доли секунды в значении даты и времени.The hundred thousandths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "fffff".More information: The "fffff" Custom Format Specifier.
2009-06-15T13:45:30.6175400 -> 617542009-06-15T13:45:30.6175400 -> 61754

6/15/2009 13:45:30.000005 -> 000006/15/2009 13:45:30.000005 -> 00000
"ffffff""ffffff" Миллионные доли секунды в значении даты и времени.The millionths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "ffffff".More information: The "ffffff" Custom Format Specifier.
2009-06-15T13:45:30.6175420 -> 6175422009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> 0000002009-06-15T13:45:30.0000005 -> 000000
"fffffff""fffffff" Десятимиллионные доли секунды в значении даты и времени.The ten millionths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "fffffff".More information: The "fffffff" Custom Format Specifier.
2009-06-15T13:45:30.6175425 -> 61754252009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 00011502009-06-15T13:45:30.0001150 -> 0001150
"F""F" Если ненулевое значение, то десятые доли секунды в значении даты и времени.If non-zero, the tenths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "F".More information: The "F" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 62009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.0500000 -> (нет вывода)2009-06-15T13:45:30.0500000 -> (no output)
"FF""FF" Если ненулевое значение, то сотые доли секунды в значении даты и времени.If non-zero, the hundredths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "FF".More information: The "FF" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 612009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> (нет вывода)2009-06-15T13:45:30.0050000 -> (no output)
"FFF""FFF" Если ненулевое значение, то тысячные доли секунды в значении даты и времени.If non-zero, the milliseconds in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "FFF".More information: The "FFF" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 6172009-06-15T13:45:30.6170000 -> 617

2009-06-15T13:45:30.0005000 -> (нет вывода)2009-06-15T13:45:30.0005000 -> (no output)
"FFFF""FFFF" Если ненулевое значение, то десятитысячные доли секунды в значении даты и времени.If non-zero, the ten thousandths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "FFFF".More information: The "FFFF" Custom Format Specifier.
2009-06-15T13:45:30.5275000 -> 52752009-06-15T13:45:30.5275000 -> 5275

2009-06-15T13:45:30.0000500 -> (нет вывода)2009-06-15T13:45:30.0000500 -> (no output)
"FFFFF""FFFFF" Если ненулевое значение, то стотысячные доли секунды в значении даты и времени.If non-zero, the hundred thousandths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "FFFFF".More information: The "FFFFF" Custom Format Specifier.
2009-06-15T13:45:30.6175400 -> 617542009-06-15T13:45:30.6175400 -> 61754

2009-06-15T13:45:30.0000050 -> (нет вывода)2009-06-15T13:45:30.0000050 -> (no output)
"FFFFFF""FFFFFF" Если ненулевое значение, то миллионные доли секунды в значении даты и времени.If non-zero, the millionths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "FFFFFF".More information: The "FFFFFF" Custom Format Specifier.
2009-06-15T13:45:30.6175420 -> 6175422009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> (нет вывода)2009-06-15T13:45:30.0000005 -> (no output)
"FFFFFFF""FFFFFFF" Если ненулевое значение, то десятимиллионные доли секунды в значении даты и времени.If non-zero, the ten millionths of a second in a date and time value.

Дополнительная информация: Настраиваемый описатель формата "FFFFFFF".More information: The "FFFFFFF" Custom Format Specifier.
2009-06-15T13:45:30.6175425 -> 61754252009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 0001152009-06-15T13:45:30.0001150 -> 000115
"g", "gg""g", "gg" Период или эра.The period or era.

Дополнительная информация: Настраиваемый описатель формата "g" или "gg".More information: The "g" or "gg" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> A.D.2009-06-15T13:45:30.6170000 -> A.D.
"h""h" Час в 12-часовом формате от 1 до 12.The hour, using a 12-hour clock from 1 to 12.

Дополнительная информация: Настраиваемый описатель формата "h".More information: The "h" Custom Format Specifier.
2009-06-15T01:45:30 -> 12009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 12009-06-15T13:45:30 -> 1
"hh""hh" Час в 12-часовом формате от 01 до 12.The hour, using a 12-hour clock from 01 to 12.

Дополнительная информация: Настраиваемый описатель формата "hh".More information: The "hh" Custom Format Specifier.
2009-06-15T01:45:30 -> 012009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 012009-06-15T13:45:30 -> 01
"H""H" Час в 24-часовом формате от 0 до 23.The hour, using a 24-hour clock from 0 to 23.

Дополнительная информация: Настраиваемый описатель формата "H".More information: The "H" Custom Format Specifier.
2009-06-15T01:45:30 -> 12009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 132009-06-15T13:45:30 -> 13
"HH""HH" Час в 24-часовом формате от 00 до 23.The hour, using a 24-hour clock from 00 to 23.

Дополнительная информация: Настраиваемый описатель формата "HH".More information: The "HH" Custom Format Specifier.
2009-06-15T01:45:30 -> 012009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 132009-06-15T13:45:30 -> 13
"K""K" Данные о часовом поясе.Time zone information.

Дополнительная информация: Настраиваемый описатель формата "K".More information: The "K" Custom Format Specifier.
Со значениями DateTime:With DateTime values:

2009-06-15T13:45:30, Kind Unspecified ->2009-06-15T13:45:30, Kind Unspecified ->

2009-06-15T13:45:30, Kind Utc -> Z2009-06-15T13:45:30, Kind Utc -> Z

2009-06-15T13:45:30, Kind Local -> -07:00 (зависит от настроек локального компьютера)2009-06-15T13:45:30, Kind Local -> -07:00 (depends on local computer settings)

Со значениями DateTimeOffset:With DateTimeOffset values:

2009-06-15T01:45:30-07:00 --> -07:002009-06-15T01:45:30-07:00 --> -07:00

2009-06-15T08:45:30+00:00 --> +00:002009-06-15T08:45:30+00:00 --> +00:00
"m""m" Минуты, в диапазоне от 0 до 59.The minute, from 0 through 59.

Дополнительная информация: Настраиваемый описатель формата "m".More information: The "m" Custom Format Specifier.
2009-06-15T01:09:30 -> 92009-06-15T01:09:30 -> 9

2009-06-15T13:29:30 -> 292009-06-15T13:29:30 -> 29
"mm""mm" Минуты, в диапазоне от 00 до 59.The minute, from 00 through 59.

Дополнительная информация: Настраиваемый описатель формата "mm".More information: The "mm" Custom Format Specifier.
2009-06-15T01:09:30 -> 092009-06-15T01:09:30 -> 09

2009-06-15T01:45:30 -> 452009-06-15T01:45:30 -> 45
"M""M" Месяц, в диапазоне от 1 до 12.The month, from 1 through 12.

Дополнительная информация: Настраиваемый описатель формата "M".More information: The "M" Custom Format Specifier.
2009-06-15T13:45:30 -> 62009-06-15T13:45:30 -> 6
"MM""MM" Месяц, в диапазоне от 01 до 12.The month, from 01 through 12.

Дополнительная информация: Настраиваемый описатель формата "MM".More information: The "MM" Custom Format Specifier.
2009-06-15T13:45:30 -> 062009-06-15T13:45:30 -> 06
"MMM""MMM" Сокращенное название месяца.The abbreviated name of the month.

Дополнительная информация: Настраиваемый описатель формата "MMM".More information: The "MMM" Custom Format Specifier.
2009-06-15T13:45:30 -> Jun (en-US)2009-06-15T13:45:30 -> Jun (en-US)

2009-06-15T13:45:30 -> juin (fr-FR)2009-06-15T13:45:30 -> juin (fr-FR)

2009-06-15T13:45:30 -> Jun (zu-ZA)2009-06-15T13:45:30 -> Jun (zu-ZA)
"MMMM""MMMM" Полное название месяца.The full name of the month.

Дополнительная информация: Настраиваемый описатель формата "MMMM".More information: The "MMMM" Custom Format Specifier.
2009-06-15T13:45:30 -> June (en-US)2009-06-15T13:45:30 -> June (en-US)

2009-06-15T13:45:30 -> juni (da-DK)2009-06-15T13:45:30 -> juni (da-DK)

2009-06-15T13:45:30 -> uJuni (zu-ZA)2009-06-15T13:45:30 -> uJuni (zu-ZA)
"s""s" Секунды, в диапазоне от 0 до 59.The second, from 0 through 59.

Дополнительная информация: Настраиваемый описатель формата "s".More information: The "s" Custom Format Specifier.
2009-06-15T13:45:09 -> 92009-06-15T13:45:09 -> 9
"ss""ss" Секунды, в диапазоне от 00 до 59.The second, from 00 through 59.

Дополнительная информация: Настраиваемый описатель формата "ss".More information: The "ss" Custom Format Specifier.
2009-06-15T13:45:09 -> 092009-06-15T13:45:09 -> 09
"t""t" Первый символ указателя AM/PM (до полудня/после полудня).The first character of the AM/PM designator.

Дополнительная информация: Настраиваемый описатель формата "t".More information: The "t" Custom Format Specifier.
2009-06-15T13:45:30 -> P (en-US)2009-06-15T13:45:30 -> P (en-US)

2009-06-15T13:45:30 -> 午 (ja-JP)2009-06-15T13:45:30 -> 午 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR)2009-06-15T13:45:30 -> (fr-FR)
"tt""tt" Указатель AM/PM (до полудня/после полудня).The AM/PM designator.

Дополнительная информация: Настраиваемый описатель формата "tt".More information: The "tt" Custom Format Specifier.
2009-06-15T13:45:30 -> PM (en-US)2009-06-15T13:45:30 -> PM (en-US)

2009-06-15T13:45:30 -> 午後 (ja-JP)2009-06-15T13:45:30 -> 午後 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR)2009-06-15T13:45:30 -> (fr-FR)
"y""y" Год, в диапазоне от 0 до 99.The year, from 0 to 99.

Дополнительная информация: Настраиваемый описатель формата "y".More information: The "y" Custom Format Specifier.
0001-01-01T00:00:00 -> 10001-01-01T00:00:00 -> 1

0900-01-01T00:00:00 -> 00900-01-01T00:00:00 -> 0

1900-01-01T00:00:00 -> 01900-01-01T00:00:00 -> 0

2009-06-15T13:45:30 -> 92009-06-15T13:45:30 -> 9

2019-06-15T13:45:30 -> 192019-06-15T13:45:30 -> 19
"yy""yy" Год, в диапазоне от 00 до 99.The year, from 00 to 99.

Дополнительная информация: Настраиваемый описатель формата "yy".More information: The "yy" Custom Format Specifier.
0001-01-01T00:00:00 -> 010001-01-01T00:00:00 -> 01

0900-01-01T00:00:00 -> 000900-01-01T00:00:00 -> 00

1900-01-01T00:00:00 -> 001900-01-01T00:00:00 -> 00

2019-06-15T13:45:30 -> 192019-06-15T13:45:30 -> 19
"yyy""yyy" Год в виде как минимум трех цифр.The year, with a minimum of three digits.

Дополнительная информация: Настраиваемый описатель формата "yyy".More information: The "yyy" Custom Format Specifier.
0001-01-01T00:00:00 -> 0010001-01-01T00:00:00 -> 001

0900-01-01T00:00:00 -> 9000900-01-01T00:00:00 -> 900

1900-01-01T00:00:00 -> 19001900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 20092009-06-15T13:45:30 -> 2009
"yyyy""yyyy" Год в виде четырехзначного числа.The year as a four-digit number.

Дополнительная информация: Настраиваемый описатель формата "yyyy".More information: The "yyyy" Custom Format Specifier.
0001-01-01T00:00:00 -> 00010001-01-01T00:00:00 -> 0001

0900-01-01T00:00:00 -> 09000900-01-01T00:00:00 -> 0900

1900-01-01T00:00:00 -> 19001900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 20092009-06-15T13:45:30 -> 2009
"yyyyy""yyyyy" Год в виде пятизначного числа.The year as a five-digit number.

Дополнительная информация: Настраиваемый описатель формата "yyyyy".More information: The "yyyyy" Custom Format Specifier.
0001-01-01T00:00:00 -> 000010001-01-01T00:00:00 -> 00001

2009-06-15T13:45:30 -> 020092009-06-15T13:45:30 -> 02009
"z""z" Часовой сдвиг от времени в формате UTC (универсального времени), без нулей в начале.Hours offset from UTC, with no leading zeros.

Дополнительная информация: Настраиваемый описатель формата "z".More information: The "z" Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -72009-06-15T13:45:30-07:00 -> -7
"zz""zz" Часовой сдвиг от времени в формате UTC (универсального времени) с нулями в начале для значений из одной цифры.Hours offset from UTC, with a leading zero for a single-digit value.

Дополнительная информация: Настраиваемый описатель формата "zz".More information: The "zz" Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -072009-06-15T13:45:30-07:00 -> -07
"zzz""zzz" Сдвиг в часах и минутах от времени в формате UTC (универсального времени).Hours and minutes offset from UTC.

Дополнительная информация: Настраиваемый описатель формата "zzz".More information: The "zzz" Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -07:002009-06-15T13:45:30-07:00 -> -07:00
":"":" Разделитель компонентов времени.The time separator.

Дополнительная информация: Настраиваемый описатель формата ":".More information: The ":" Custom Format Specifier.
2009-06-15T13:45:30 -> : (en-US)2009-06-15T13:45:30 -> : (en-US)

2009-06-15T13:45:30 -> .2009-06-15T13:45:30 -> . (it-IT)(it-IT)

2009-06-15T13:45:30 -> : (ja-JP)2009-06-15T13:45:30 -> : (ja-JP)
"/""/" Разделитель компонентов даты.The date separator.

Дополнительные сведения: Настраиваемый описатель формата "/".More Information: The "/" Custom Format Specifier.
2009-06-15T13:45:30 -> / (en-US)2009-06-15T13:45:30 -> / (en-US)

2009-06-15T13:45:30 -> - (ar-DZ)2009-06-15T13:45:30 -> - (ar-DZ)

2009-06-15T13:45:30 -> .2009-06-15T13:45:30 -> . (tr-TR)(tr-TR)
string"string"

string'string'
Буквенный разделитель строк.Literal string delimiter.

Дополнительная информация: Символьные литералы.More information: Character literals.
2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P

2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P
% Задает следующий символ в качестве настраиваемого описателя формата.Defines the following character as a custom format specifier.

Дополнительные сведения см. в подразделе Использование единичных настраиваемых описателей формата.More information:Using Single Custom Format Specifiers.
2009-06-15T13:45:30 (%h) -> 12009-06-15T13:45:30 (%h) -> 1
\\ Escape-символ.The escape character.

Дополнительная информация: Символьные литералы и Использование escape-символа.More information: Character literals and Using the Escape Character.
2009-06-15T13:45:30 (h \h) -> 1 h2009-06-15T13:45:30 (h \h) -> 1 h
Любой другой знакAny other character Символ копируется в результирующую строку без изменений.The character is copied to the result string unchanged.

Дополнительная информация: Символьные литералы.More information: Character literals.
2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A

В следующих подразделах предоставляются дополнительные сведения о всех настраиваемых описателях формата даты и времени.The following sections provide additional information about each custom date and time format specifier. Если не указано иное, каждый настраиваемый описатель формата даты и времени формирует одинаковое строковое представление независимо от того, используется ли он со значением DateTime или со значением DateTimeOffset.Unless otherwise noted, each specifier produces an identical string representation regardless of whether it's used with a DateTime value or a DateTimeOffset value.

Настраиваемый описатель формата "d"The "d" custom format specifier

Настраиваемый описатель формата "d" представляет день месяца в виде числа в диапазоне от 1 до 31.The "d" custom format specifier represents the day of the month as a number from 1 through 31. День в виде одной цифры форматируется без нуля в начале.A single-digit day is formatted without a leading zero.

Если описатель формата "d" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "d" стандартного формата даты и времени.If the "d" format specifier is used without other custom format specifiers, it's interpreted as the "d" standard date and time format specifier. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере настраиваемый описатель формата "d" используется в нескольких строках формата.The following example includes the "d" custom format specifier in several format strings.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15); 

Console.WriteLine(date1.ToString("d, M", 
                  CultureInfo.InvariantCulture)); 
// Displays 29, 8

Console.WriteLine(date1.ToString("d MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays 29 August
Console.WriteLine(date1.ToString("d MMMM", 
                  CultureInfo.CreateSpecificCulture("es-MX")));
// Displays 29 agosto                                                
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("d, M", _
                  CultureInfo.InvariantCulture)) 
' Displays 29, 8

Console.WriteLine(date1.ToString("d MMMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays 29 August
Console.WriteLine(date1.ToString("d MMMM", _
                  CultureInfo.CreateSpecificCulture("es-MX")))
' Displays 29 agosto                                                

К таблицеBack to table

Настраиваемый описатель формата "dd"The "dd" custom format specifier

Настраиваемый описатель формата "dd" представляет день месяца в виде числа в диапазоне от 01 до 31.The "dd" custom format string represents the day of the month as a number from 01 through 31. День в виде одной цифры форматируется с нулем в начале.A single-digit day is formatted with a leading zero.

В следующем примере настраиваемый описатель формата "dd" используется в строке настраиваемого формата.The following example includes the "dd" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 1, 2, 6, 30, 15);

Console.WriteLine(date1.ToString("dd, MM", 
                  CultureInfo.InvariantCulture)); 
// 02, 01
Dim date1 As Date = #1/2/2008 6:30:15AM#

Console.WriteLine(date1.ToString("dd, MM", _
                  CultureInfo.InvariantCulture)) 
' 02, 01

К таблицеBack to table

Настраиваемый описатель формата "ddd"The "ddd" custom format specifier

Настраиваемый описатель формата "ddd" представляет сокращенное название дня недели.The "ddd" custom format specifier represents the abbreviated name of the day of the week. Локализованное сокращенное название дня недели извлекается из свойства DateTimeFormatInfo.AbbreviatedDayNames текущей или заданной среды языка и региональных параметров.The localized abbreviated name of the day of the week is retrieved from the DateTimeFormatInfo.AbbreviatedDayNames property of the current or specified culture.

В следующем примере описатель настраиваемый описатель формата "ddd" используется в строке настраиваемого формата.The following example includes the "ddd" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays ven. 29 août                                                
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays ven. 29 août                                                

К таблицеBack to table

Настраиваемый описатель формата "dddd"The "dddd" custom format specifier

Настраиваемый описатель формата "dddd" (плюс любое количество дополнительных описателей "d") представляет полное название дня недели.The "dddd" custom format specifier (plus any number of additional "d" specifiers) represents the full name of the day of the week. Локализованное название дня недели извлекается из свойства DateTimeFormatInfo.DayNames текущей или заданной среды языка и региональных параметров.The localized name of the day of the week is retrieved from the DateTimeFormatInfo.DayNames property of the current or specified culture.

В следующем примере настраиваемый описатель формата "dddd" используется в строке настраиваемого формата.The following example includes the "dddd" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("dddd dd MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM", 
                  CultureInfo.CreateSpecificCulture("it-IT")));
// Displays venerdì 29 agosto                                
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("dddd dd MMMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM", _
                  CultureInfo.CreateSpecificCulture("it-IT")))
' Displays venerdì 29 agosto                                          

К таблицеBack to table

Настраиваемый описатель формата "F"The "f" custom format specifier

Настраиваемый описатель формата "f" представляет наиболее значимую цифру секунд, то есть десятые доли секунды в значении даты и времени.The "f" custom format specifier represents the most significant digit of the seconds fraction; that is, it represents the tenths of a second in a date and time value.

Если описатель формата "f" используется без других описателей формата, то он интерпретируется как описатель "f" стандартного формата даты и времени.If the "f" format specifier is used without other format specifiers, it's interpreted as the "f" standard date and time format specifier. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

При использовании описателей формата "f" в составе строки формата, передаваемой методу ParseExact, TryParseExact, ParseExact или TryParseExact, количество описателей формата "f" указывает на количество наиболее значимых цифр секунд, которые должны присутствовать для обеспечения успешного анализа строки.When you use "f" format specifiers as part of a format string supplied to the ParseExact, TryParseExact, ParseExact, or TryParseExact method, the number of "f" format specifiers indicates the number of most significant digits of the seconds fraction that must be present to successfully parse the string.

В следующем примере настраиваемый описатель формата "f" используется в строке настраиваемого формата.The following example includes the "f" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

К таблицеBack to table

Настраиваемый описатель формата "ff"The "ff" custom format specifier

Настраиваемый описатель формата "ff" представляет две наиболее значимые цифры секунд, то есть сотые доли секунды в значении даты и времени.The "ff" custom format specifier represents the two most significant digits of the seconds fraction; that is, it represents the hundredths of a second in a date and time value.

В следующем примере настраиваемый описатель формата "ff" используется в строке настраиваемого формата.following example includes the "ff" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

К таблицеBack to table

Настраиваемый описатель формата "fff"The "fff" custom format specifier

Настраиваемый описатель формата "fff" представляет три наиболее значимые цифры секунд, то есть миллисекунды в значении даты и времени.The "fff" custom format specifier represents the three most significant digits of the seconds fraction; that is, it represents the milliseconds in a date and time value.

В следующем примере настраиваемый описатель формата "fff" используется в строке настраиваемого формата.The following example includes the "fff" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

К таблицеBack to table

Настраиваемый описатель формата "ffff"The "ffff" custom format specifier

Настраиваемый описатель формата "ffff" представляет четыре наиболее значимые цифры секунд, то есть десятитысячные доли секунды в значении даты и времени.The "ffff" custom format specifier represents the four most significant digits of the seconds fraction; that is, it represents the ten thousandths of a second in a date and time value.

Хотя и существует возможность отображения десятитысячных долей секунды в значении времени, это значение может не иметь особого смысла.Although it's possible to display the ten thousandths of a second component of a time value, that value may not be meaningful. Точность значений даты и времени зависит от разрешения системных часов.The precision of date and time values depends on the resolution of the system clock. В операционных системах Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.On the Windows NT version 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

К таблицеBack to table

Настраиваемый описатель формата "fffff"The "fffff" custom format specifier

Настраиваемый описатель формата "FFFFF" представляет пять наиболее значимых цифр секунд, то есть стотысячные доли секунды в значении даты и времени.The "fffff" custom format specifier represents the five most significant digits of the seconds fraction; that is, it represents the hundred thousandths of a second in a date and time value.

Хотя и существует возможность отображения стотысячных долей секунды в значении времени, это значение может не иметь особого смысла.Although it's possible to display the hundred thousandths of a second component of a time value, that value may not be meaningful. Точность значений даты и времени зависит от разрешения системных часов.The precision of date and time values depends on the resolution of the system clock. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

К таблицеBack to table

Настраиваемый описатель формата "ffffff"The "ffffff" custom format specifier

Настраиваемый описатель формата "fffff" представляет шесть наиболее значимых цифр секунд, то есть миллионные доли секунды в значении даты и времени.The "ffffff" custom format specifier represents the six most significant digits of the seconds fraction; that is, it represents the millionths of a second in a date and time value.

Хотя и существует возможность отображения миллионных долей секунды, это значение может не иметь особого смысла.Although it's possible to display the millionths of a second component of a time value, that value may not be meaningful. Точность значений даты и времени зависит от разрешения системных часов.The precision of date and time values depends on the resolution of the system clock. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

К таблицеBack to table

Настраиваемый описатель формата "fffffff"The "fffffff" custom format specifier

Настраиваемый описатель формата "ffffff" представляет семь наиболее значимых цифр секунд, то есть десятимиллионные доли секунды в значении даты и времени.The "fffffff" custom format specifier represents the seven most significant digits of the seconds fraction; that is, it represents the ten millionths of a second in a date and time value.

Хотя и существует возможность отображения десятимиллионных долей секунды, это значение может не иметь особого смысла.Although it's possible to display the ten millionths of a second component of a time value, that value may not be meaningful. Точность значений даты и времени зависит от разрешения системных часов.The precision of date and time values depends on the resolution of the system clock. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

К таблицеBack to table

Настраиваемый описатель формата "F"The "F" custom format specifier

Настраиваемый описатель формата "F" представляет наиболее значимую цифру секунд, то есть десятые доли секунды в значении даты и времени.The "F" custom format specifier represents the most significant digit of the seconds fraction; that is, it represents the tenths of a second in a date and time value. Если цифра равна нулю, то ничего не отображается.Nothing is displayed if the digit is zero.

Если описатель формата "F" используется без других описателей формата, то он интерпретируется как описатель "F" стандартного формата даты и времени.If the "F" format specifier is used without other format specifiers, it's interpreted as the "F" standard date and time format specifier. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

Число описателей формата "F", используемых с методом ParseExact, TryParseExact, ParseExact или TryParseExact, задает максимальное количество наиболее значимых цифр секунд, которые должны присутствовать для успешного анализа строки.The number of "F" format specifiers used with the ParseExact, TryParseExact, ParseExact, or TryParseExact method indicates the maximum number of most significant digits of the seconds fraction that can be present to successfully parse the string.

В следующем примере настраиваемый описатель формата "F" используется в строке настраиваемого формата.The following example includes the "F" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

К таблицеBack to table

Настраиваемый описатель формата "FF"The "FF" custom format specifier

Настраиваемый описатель формата "FF" представляет две наиболее значимые цифры секунд, то есть сотые доли секунды в значении даты и времени.The "FF" custom format specifier represents the two most significant digits of the seconds fraction; that is, it represents the hundredths of a second in a date and time value. При этом нули в конце или два нуля не отображаются.However, trailing zeros or two zero digits aren't displayed.

В следующем примере настраиваемый описатель формата "FF" используется в строке настраиваемого формата.The following example includes the "FF" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

К таблицеBack to table

Настраиваемый описатель формата "FFF"The "FFF" custom format specifier

Настраиваемый описатель формата "FFF" представляет три наиболее значимые цифры секунд, то есть миллисекунды в значении даты и времени.The "FFF" custom format specifier represents the three most significant digits of the seconds fraction; that is, it represents the milliseconds in a date and time value. При этом нули в конце или три нуля не отображаются.However, trailing zeros or three zero digits aren't displayed.

В следующем примере настраиваемый описатель формата "FFF" используется в строке настраиваемого формата.The following example includes the "FFF" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

К таблицеBack to table

Настраиваемый описатель формата "FFFF"The "FFFF" custom format specifier

Настраиваемый описатель формата "FFFF" представляет четыре наиболее значимые цифры секунд, то есть десятитысячные доли секунды в значении даты и времени.The "FFFF" custom format specifier represents the four most significant digits of the seconds fraction; that is, it represents the ten thousandths of a second in a date and time value. При этом нули в конце или четыре нуля не отображаются.However, trailing zeros or four zero digits aren't displayed.

Хотя и существует возможность отображения десятитысячных долей секунды в значении времени, это значение может не иметь особого смысла.Although it's possible to display the ten thousandths of a second component of a time value, that value may not be meaningful. Точность значений даты и времени зависит от разрешения системных часов.The precision of date and time values depends on the resolution of the system clock. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

К таблицеBack to table

Настраиваемый описатель формата "FFFFF"The "FFFFF" custom format specifier

Настраиваемый описатель формата "FFFFF" представляет пять наиболее значимых цифр секунд, то есть стотысячные доли секунды в значении даты и времени.The "FFFFF" custom format specifier represents the five most significant digits of the seconds fraction; that is, it represents the hundred thousandths of a second in a date and time value. При этом нули в конце или пять нулей не отображаются.However, trailing zeros or five zero digits aren't displayed.

Хотя и существует возможность отображения стотысячных долей секунды в значении времени, это значение может не иметь особого смысла.Although it's possible to display the hundred thousandths of a second component of a time value, that value may not be meaningful. Точность значений даты и времени зависит от разрешения системных часов.The precision of date and time values depends on the resolution of the system clock. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

К таблицеBack to table

Настраиваемый описатель формата "FFFFFF"The "FFFFFF" custom format specifier

Настраиваемый описатель формата "FFFFFF" представляет шесть наиболее значимых цифр секунд, то есть миллионные доли секунды в значении даты и времени.The "FFFFFF" custom format specifier represents the six most significant digits of the seconds fraction; that is, it represents the millionths of a second in a date and time value. При этом нули в конце или шесть нулей не отображаются.However, trailing zeros or six zero digits aren't displayed.

Хотя и существует возможность отображения миллионных долей секунды, это значение может не иметь особого смысла.Although it's possible to display the millionths of a second component of a time value, that value may not be meaningful. Точность значений даты и времени зависит от разрешения системных часов.The precision of date and time values depends on the resolution of the system clock. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

К таблицеBack to table

Настраиваемый описатель формата "FFFFFFF"The "FFFFFFF" custom format specifier

Настраиваемый описатель формата "FFFFFFF" представляет семь наиболее значимых цифр секунд, то есть десятимиллионные доли секунды в значении даты и времени.The "FFFFFFF" custom format specifier represents the seven most significant digits of the seconds fraction; that is, it represents the ten millionths of a second in a date and time value. При этом нули в конце или семь нулей не отображаются.However, trailing zeros or seven zero digits aren't displayed.

Хотя и существует возможность отображения десятимиллионных долей секунды, это значение может не иметь особого смысла.Although it's possible to display the ten millionths of a second component of a time value, that value may not be meaningful. Точность значений даты и времени зависит от разрешения системных часов.The precision of date and time values depends on the resolution of the system clock. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

К таблицеBack to table

Настраиваемый описатель формата "g" или "gg"The "g" or "gg" custom format specifier

Настраиваемые описатели формата "g" и "gg" (плюс любое число дополнительных описателей "g") представляют период или эру, например A.D. (н. э.).The "g" or "gg" custom format specifiers (plus any number of additional "g" specifiers) represents the period or era, such as A.D. Операция форматирования игнорирует этот описатель, если форматируемой дате не сопоставлена строка периода или эры.The formatting operation ignores this specifier if the date to be formatted doesn't have an associated period or era string.

Если описатель формата "g" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "g" стандартного формата даты и времени.If the "g" format specifier is used without other custom format specifiers, it's interpreted as the "g" standard date and time format specifier. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере настраиваемый описатель формата "g" используется в строке настраиваемого формата.The following example includes the "g" custom format specifier in a custom format string.

DateTime date1 = new DateTime(70, 08, 04);

Console.WriteLine(date1.ToString("MM/dd/yyyy g", 
                  CultureInfo.InvariantCulture));
// Displays 08/04/0070 A.D.                        
Console.WriteLine(date1.ToString("MM/dd/yyyy g", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));                         
// Displays 08/04/0070 ap. J.-C.
Dim date1 As Date = #08/04/0070#

Console.WriteLine(date1.ToString("MM/dd/yyyy g", _
                  CultureInfo.InvariantCulture))
' Displays 08/04/0070 A.D.                        
Console.WriteLine(date1.ToString("MM/dd/yyyy g", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))                         
' Displays 08/04/0070 ap. J.-C.

К таблицеBack to table

Настраиваемый описатель формата "h"The "h" custom format specifier

Настраиваемый описатель формата "h" представляет часы в виде числа в диапазоне от 1 до 12, то есть в 12-часовом формате, в котором полные часы отсчитываются от полуночи или от полудня.The "h" custom format specifier represents the hour as a number from 1 through 12; that is, the hour is represented by a 12-hour clock that counts the whole hours since midnight or noon. Час после полуночи неотличим от того же часа после полудня.A particular hour after midnight is indistinguishable from the same hour after noon. Часы не округляются, и часы с одной цифрой форматируются без нуля в начале.The hour is not rounded, and a single-digit hour is formatted without a leading zero. Например, для времени 5:43 утра или вечера этот настраиваемый описатель формата выведет "5".For example, given a time of 5:43 in the morning or afternoon, this custom format specifier displays "5".

Если описатель формата "h" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени и возникает исключение FormatException.If the "h" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере настраиваемый описатель формата "h" используется в строке настраиваемого формата.The following example includes the "h" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ                        
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ                        
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ

К таблицеBack to table

Настраиваемый описатель формата "hh"The "hh" custom format specifier

Настраиваемый описатель формата "hh" (плюс любое количество дополнительных описателей "h") представляет часы в виде числа в диапазоне от 01 до 12, то есть в 12-часовом формате, в котором полные часы отсчитываются от полуночи или от полудня.The "hh" custom format specifier (plus any number of additional "h" specifiers) represents the hour as a number from 01 through 12; that is, the hour is represented by a 12-hour clock that counts the whole hours since midnight or noon. Час после полуночи неотличим от того же часа после полудня.A particular hour after midnight is indistinguishable from the same hour after noon. Часы не округляются, и часы с одной цифрой форматируются с нулем в начале.The hour is not rounded, and a single-digit hour is formatted with a leading zero. Например, для времени 5:43 утра или вечера этот описатель формата выведет "05".For example, given a time of 5:43 in the morning or afternoon, this format specifier displays "05".

В следующем примере настраиваемый описатель формата "hh" используется в строке настраиваемого формата.The following example includes the "hh" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01 du.
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01.50 du.

К таблицеBack to table

Настраиваемый описатель формата "H"The "H" custom format specifier

Настраиваемый описатель формата "H" представляет часы в виде числа в диапазоне от 0 до 23, то есть в 24-часовом формате, в котором полные часы отсчитываются от полуночи, начиная с 0.The "H" custom format specifier represents the hour as a number from 0 through 23; that is, the hour is represented by a zero-based 24-hour clock that counts the hours since midnight. Часы с одной цифрой форматируются без нуля в начале.A single-digit hour is formatted without a leading zero.

Если описатель формата "H" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени и возникает исключение FormatException.If the "H" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере настраиваемый описатель формата "H" используется в строке настраиваемого формата.The following example includes the "H" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1);
Console.WriteLine(date1.ToString("H:mm:ss", 
                  CultureInfo.InvariantCulture));
// Displays 6:09:01              
Dim date1 As Date = #6:09:01AM#
Console.WriteLine(date1.ToString("H:mm:ss", _
                  CultureInfo.InvariantCulture))
' Displays 6:09:01                        

К таблицеBack to table

Настраиваемый описатель формата "HH"The "HH" custom format specifier

Настраиваемый описатель формата "HH" (плюс любое количество дополнительных описателей "H") представляет часы в виде числа в диапазоне от 00 до 23, то есть в 24-часовом формате, в котором полные часы отсчитываются от полуночи начиная с 0.The "HH" custom format specifier (plus any number of additional "H" specifiers) represents the hour as a number from 00 through 23; that is, the hour is represented by a zero-based 24-hour clock that counts the hours since midnight. Часы с одной цифрой форматируются с нулем в начале.A single-digit hour is formatted with a leading zero.

В следующем примере настраиваемый описатель формата "HH" используется в строке настраиваемого формата.The following example includes the "HH" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1);
Console.WriteLine(date1.ToString("HH:mm:ss", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01                        
Dim date1 As Date = #6:09:01AM#
Console.WriteLine(date1.ToString("HH:mm:ss", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01                        

К таблицеBack to table

Настраиваемый описатель формата "K"The "K" custom format specifier

Настраиваемый описатель формата "K" представляет данные о часовом поясе значения даты и времени.The "K" custom format specifier represents the time zone information of a date and time value. При использовании этого описателя формата со значениями DateTime результирующая строка определяется значением свойства DateTime.Kind:When this format specifier is used with DateTime values, the result string is defined by the value of the DateTime.Kind property:

  • Для местного часового пояса (свойства DateTime.Kind со значением DateTimeKind.Local) этот описатель равнозначен описателю "zzz" и формирует результирующую строку, содержащую локальное смещение от универсального времени (UTC), например "-07:00".For the local time zone (a DateTime.Kind property value of DateTimeKind.Local), this specifier is equivalent to the "zzz" specifier and produces a result string containing the local offset from Coordinated Universal Time (UTC); for example, "-07:00".

  • Для времени UTC (свойства DateTime.Kind со значением DateTimeKind.Utc) результирующая строка содержит знак "Z", указывающий дату в формате UTC.For a UTC time (a DateTime.Kind property value of DateTimeKind.Utc), the result string includes a "Z" character to represent a UTC date.

  • Для времени в неопределенном часовом поясе (времени, свойство DateTime.Kind которого имеет значение DateTimeKind.Unspecified) результат равен String.Empty.For a time from an unspecified time zone (a time whose DateTime.Kind property equals DateTimeKind.Unspecified), the result is equivalent to String.Empty.

Для значений DateTimeOffset описатель формата K равнозначен описателю формата zz, который формирует результирующую строку, содержащую смещение значения от времени UTC в виде DateTimeOffset.For DateTimeOffset values, the "K" format specifier is equivalent to the "zzz" format specifier, and produces a result string containing the DateTimeOffset value's offset from UTC.

Если описатель формата "K" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени и возникает исключение FormatException.If the "K" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере показаны строки, полученные с использованием спецификатора настраиваемого формата "K" с различными значениями DateTime и DateTimeOffset в США. тихоокеанском стандартном часовом поясе США.The following example displays the string that results from using the "K" custom format specifier with various DateTime and DateTimeOffset values on a system in the U.S. Pacific Time zone.

Console.WriteLine(DateTime.Now.ToString("%K"));
// Displays -07:00
Console.WriteLine(DateTime.UtcNow.ToString("%K"));
// Displays Z      
Console.WriteLine("'{0}'", 
                  DateTime.SpecifyKind(DateTime.Now, 
                       DateTimeKind.Unspecified).ToString("%K"));
// Displays ''      
Console.WriteLine(DateTimeOffset.Now.ToString("%K"));
// Displays -07:00
Console.WriteLine(DateTimeOffset.UtcNow.ToString("%K"));
// Displays +00:00
Console.WriteLine(new DateTimeOffset(2008, 5, 1, 6, 30, 0, 
                      new TimeSpan(5, 0, 0)).ToString("%K"));
// Displays +05:00                        
Console.WriteLine(Date.Now.ToString("%K"))
' Displays -07:00
Console.WriteLine(Date.UtcNow.ToString("%K"))
' Displays Z      
Console.WriteLine("'{0}'", _
                  Date.SpecifyKind(Date.Now, _
                                   DateTimeKind.Unspecified). _
                  ToString("%K"))
' Displays ''      
Console.WriteLine(DateTimeOffset.Now.ToString("%K"))
' Displays -07:00
Console.WriteLine(DateTimeOffset.UtcNow.ToString("%K"))
' Displays +00:00
Console.WriteLine(New DateTimeOffset(2008, 5, 1, 6, 30, 0, _
                                     New TimeSpan(5, 0, 0)). _
                  ToString("%K"))
' Displays +05:00                        

К таблицеBack to table

Настраиваемый описатель формата "m"The "m" custom format specifier

Настраиваемый описатель формата "m" представляет минуты в виде числа в диапазоне от 0 до 59.The "m" custom format specifier represents the minute as a number from 0 through 59. Это число целых минут, прошедших с последнего часа.The minute represents whole minutes that have passed since the last hour. Минуты с одной цифрой форматируются без нуля в начале.A single-digit minute is formatted without a leading zero.

Если описатель формата "m" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "m" стандартного формата даты и времени.If the "m" format specifier is used without other custom format specifiers, it's interpreted as the "m" standard date and time format specifier. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере настраиваемый описатель формата "m" используется в строке настраиваемого формата.The following example includes the "m" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ                        
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ                        
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ

К таблицеBack to table

Настраиваемый описатель формата "mm"The "mm" custom format specifier

Настраиваемый описатель формата "mm" (плюс любое число дополнительных описателей "m") представляет минуты в виде числа в диапазоне от 00 до 59.The "mm" custom format specifier (plus any number of additional "m" specifiers) represents the minute as a number from 00 through 59. Это число целых минут, прошедших с последнего часа.The minute represents whole minutes that have passed since the last hour. Минуты с одной цифрой форматируются с нулем в начале.A single-digit minute is formatted with a leading zero.

В следующем примере настраиваемый описатель формата "mm" используется в строке настраиваемого формата.The following example includes the "mm" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01 du.
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01.50 du.

К таблицеBack to table

Настраиваемый описатель формата "M"The "M" custom format specifier

Описатель настраиваемого формата "М" представляет месяц как число от "1" до "12" (или от "1" до "13" для календарей, в которых 13 месяцев).The "M" custom format specifier represents the month as a number from 1 through 12 (or from 1 through 13 for calendars that have 13 months). Месяц, номер которого представляет одну цифру, форматируется без нуля в начале.A single-digit month is formatted without a leading zero.

Если описатель формата "M" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "M" стандартного формата даты и времени.If the "M" format specifier is used without other custom format specifiers, it's interpreted as the "M" standard date and time format specifier. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере настраиваемый описатель формата "M" используется в строке настраиваемого формата.The following example includes the "M" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 18);
Console.WriteLine(date1.ToString("(M) MMM, MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays (8) Aug, August
Console.WriteLine(date1.ToString("(M) MMM, MMMM", 
                  CultureInfo.CreateSpecificCulture("nl-NL")));                       
// Displays (8) aug, augustus
Console.WriteLine(date1.ToString("(M) MMM, MMMM", 
                  CultureInfo.CreateSpecificCulture("lv-LV")));                        
// Displays (8) Aug, augusts                       
Dim date1 As Date = #8/18/2008#
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays (8) Aug, August
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
                  CultureInfo.CreateSpecificCulture("nl-NL")))                        
' Displays (8) aug, augustus
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
                  CultureInfo.CreateSpecificCulture("lv-LV")))                        
' Displays (8) Aug, augusts                       

К таблицеBack to table

Настраиваемый описатель формата "MM"The "MM" custom format specifier

Описатель настраиваемого формата "ММ" представляет месяц как число от "01" до "12" (или от "1" до "13" для календарей, в которых 13 месяцев).The "MM" custom format specifier represents the month as a number from 01 through 12 (or from 1 through 13 for calendars that have 13 months). Месяц, номер которого представляет одну цифру, форматируется с нулем в начале.A single-digit month is formatted with a leading zero.

В следующем примере настраиваемый описатель формата "MM" используется в строке настраиваемого формата.The following example includes the "MM" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 1, 2, 6, 30, 15);

Console.WriteLine(date1.ToString("dd, MM", 
                  CultureInfo.InvariantCulture)); 
// 02, 01
Dim date1 As Date = #1/2/2008 6:30:15AM#

Console.WriteLine(date1.ToString("dd, MM", _
                  CultureInfo.InvariantCulture)) 
' 02, 01

К таблицеBack to table

Настраиваемый описатель формата "MMM"The "MMM" custom format specifier

Настраиваемый описатель формата "MMM" представляет сокращенное название месяца.The "MMM" custom format specifier represents the abbreviated name of the month. Локализованное сокращенное название месяца извлекается из свойства DateTimeFormatInfo.AbbreviatedMonthNames текущей или заданной среды языка и региональных параметров.The localized abbreviated name of the month is retrieved from the DateTimeFormatInfo.AbbreviatedMonthNames property of the current or specified culture.

В следующем примере настраиваемый описатель формата "MMM" используется в строке настраиваемого формата.The following example includes the "MMM" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays ven. 29 août                                                
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays ven. 29 août                                                

К таблицеBack to table

Настраиваемый описатель формата "MMMM"The "MMMM" custom format specifier

Настраиваемый описатель формата "MMMM" представляет полное название месяца.The "MMMM" custom format specifier represents the full name of the month. Локализованное название месяца извлекается из свойства DateTimeFormatInfo.MonthNames текущей или заданной среды языка и региональных параметров.The localized name of the month is retrieved from the DateTimeFormatInfo.MonthNames property of the current or specified culture.

В следующем примере настраиваемый описатель формата "MMMM" используется в строке настраиваемого формата.The following example includes the "MMMM" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("dddd dd MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM", 
                  CultureInfo.CreateSpecificCulture("it-IT")));
// Displays venerdì 29 agosto                                
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("dddd dd MMMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM", _
                  CultureInfo.CreateSpecificCulture("it-IT")))
' Displays venerdì 29 agosto                                          

К таблицеBack to table

Настраиваемый описатель формата "s"The "s" custom format specifier

Настраиваемый описатель формата "s" представляет секунды в виде числа в диапазоне от 0 до 59.The "s" custom format specifier represents the seconds as a number from 0 through 59. Это число целых секунд, прошедших с последней полной минуты.The result represents whole seconds that have passed since the last minute. Секунды с одной цифрой форматируются без нуля в начале.A single-digit second is formatted without a leading zero.

Если описатель формата "s" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "s" стандартного формата даты и времени.If the "s" format specifier is used without other custom format specifiers, it's interpreted as the "s" standard date and time format specifier. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере настраиваемый описатель формата "s" используется в строке настраиваемого формата.The following example includes the "s" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ                        
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ                        
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ

К таблицеBack to table

Настраиваемый описатель формата "ss"The "ss" custom format specifier

Настраиваемый описатель формата "ss" (плюс любое число дополнительных описателей "s") представляет секунды в виде числа в диапазоне от 00 до 59.The "ss" custom format specifier (plus any number of additional "s" specifiers) represents the seconds as a number from 00 through 59. Это число целых секунд, прошедших с последней полной минуты.The result represents whole seconds that have passed since the last minute. Секунды с одной цифрой форматируются с нулем в начале.A single-digit second is formatted with a leading zero.

В следующем примере настраиваемый описатель формата "ss" используется в строке настраиваемого формата.The following example includes the "ss" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01 du.
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01.50 du.

К таблицеBack to table

Настраиваемый описатель формата "t"The "t" custom format specifier

Настраиваемый описатель формата "t" представляет первый символ указателя AM/PM (до полудня/после полудня).The "t" custom format specifier represents the first character of the AM/PM designator. Соответствующий локализованный указатель извлекается из свойства DateTimeFormatInfo.AMDesignator или DateTimeFormatInfo.PMDesignator текущей или заданной среды языка и региональных параметров.The appropriate localized designator is retrieved from the DateTimeFormatInfo.AMDesignator or DateTimeFormatInfo.PMDesignator property of the current or specific culture. Указатель AM (до полудня) используется для всех значений времени от 0:00:00 (от полуночи) до 11:59:59.999.The AM designator is used for all times from 0:00:00 (midnight) to 11:59:59.999. Указатель PM (после полудня) используется для всех значений времени от 12:00:00 (от полудня) до 23:59:59.999.The PM designator is used for all times from 12:00:00 (noon) to 23:59:59.999.

Если описатель формата "t" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "t" стандартного формата даты и времени.If the "t" format specifier is used without other custom format specifiers, it's interpreted as the "t" standard date and time format specifier. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере настраиваемый описатель формата "t" используется в строке настраиваемого формата.The following example includes the "t" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ                        
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ                        
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ

К таблицеBack to table

Настраиваемый описатель формата "tt"The "tt" custom format specifier

Настраиваемый описатель формата "tt" (плюс любое количество дополнительных описателей "t") представляет полный указатель AM/PM (до полудня/после полудня).The "tt" custom format specifier (plus any number of additional "t" specifiers) represents the entire AM/PM designator. Соответствующий локализованный указатель извлекается из свойства DateTimeFormatInfo.AMDesignator или DateTimeFormatInfo.PMDesignator текущей или заданной среды языка и региональных параметров.The appropriate localized designator is retrieved from the DateTimeFormatInfo.AMDesignator or DateTimeFormatInfo.PMDesignator property of the current or specific culture. Указатель AM (до полудня) используется для всех значений времени от 0:00:00 (от полуночи) до 11:59:59.999.The AM designator is used for all times from 0:00:00 (midnight) to 11:59:59.999. Указатель PM (после полудня) используется для всех значений времени от 12:00:00 (от полудня) до 23:59:59.999.The PM designator is used for all times from 12:00:00 (noon) to 23:59:59.999.

Следует проверить, используется ли описатель "tt" для тех языков, в которых необходимо поддерживать различие между временем до полудня и после полудня.Make sure to use the "tt" specifier for languages for which it's necessary to maintain the distinction between AM and PM. Например, японский язык, для которого AM и PM указатели различаются во втором символе вместо первого.An example is Japanese, for which the AM and PM designators differ in the second character instead of the first character.

В следующем примере настраиваемый описатель формата "tt" используется в строке настраиваемого формата.The following example includes the "tt" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01 du.
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01.50 du.

К таблицеBack to table

Настраиваемый описатель формата "y"The "y" custom format specifier

Настраиваемый описатель формата "y" представляет год в виде одно- или двузначного числа.The "y" custom format specifier represents the year as a one-digit or two-digit number. Если год имеет более двух цифр, то в результате отображаются только две младшие цифры.If the year has more than two digits, only the two low-order digits appear in the result. Если первая цифра двузначного года начинается с нуля (например, 2008), то число форматируется без нуля в начале.If the first digit of a two-digit year begins with a zero (for example, 2008), the number is formatted without a leading zero.

Если описатель формата "y" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "y" стандартного формата даты и времени.If the "y" format specifier is used without other custom format specifiers, it's interpreted as the "y" standard date and time format specifier. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере настраиваемый описатель формата "y" используется в строке настраиваемого формата.The following example includes the "y" custom format specifier in a custom format string.

DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010      
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010      

К таблицеBack to table

Настраиваемый описатель формата "yy"The "yy" custom format specifier

Настраиваемый описатель формата "yy" представляет год в виде двузначного числа.The "yy" custom format specifier represents the year as a two-digit number. Если год имеет более двух цифр, то в результате отображаются только две младшие цифры.If the year has more than two digits, only the two low-order digits appear in the result. Если двузначное обозначение года имеет менее двух значащих цифр, то число дополняется нулями, стоящими в начале, до двух цифр.If the two-digit year has fewer than two significant digits, the number is padded with leading zeros to produce two digits.

В операции синтаксического анализа представленный в виде двузначного числа год, который анализируется с использованием описателя настраиваемого формата "yy", обрабатывается на основе свойства Calendar.TwoDigitYearMax текущего календаря поставщика формата.In a parsing operation, a two-digit year that is parsed using the "yy" custom format specifier is interpreted based on the Calendar.TwoDigitYearMax property of the format provider's current calendar. В следующем примере анализируется строковое представление даты, год в которой представлен в виде двузначного числа, с использованием григорианского календаря языка и региональных параметров en-US, которые в данном случае являются текущими языком и региональными параметрами.The following example parses the string representation of a date that has a two-digit year by using the default Gregorian calendar of the en-US culture, which, in this case, is the current culture. Затем объект CultureInfo текущих языка и региональных параметров изменяется так, чтобы использовался объект GregorianCalendar, свойство TwoDigitYearMax было изменено.It then changes the current culture's CultureInfo object to use a GregorianCalendar object whose TwoDigitYearMax property has been modified.

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

public class Example
{
   public static void Main()
   {
      string fmt = "dd-MMM-yy";
      string value = "24-Jan-49";
      
      Calendar cal = (Calendar) CultureInfo.CurrentCulture.Calendar.Clone();
      Console.WriteLine("Two Digit Year Range: {0} - {1}", 
                        cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax);
      
      Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null));
      Console.WriteLine();
      
      cal.TwoDigitYearMax = 2099;
      CultureInfo culture = (CultureInfo) CultureInfo.CurrentCulture.Clone();
      culture.DateTimeFormat.Calendar = cal;
      Thread.CurrentThread.CurrentCulture = culture;

      Console.WriteLine("Two Digit Year Range: {0} - {1}", 
                        cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax);
      Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null));
   }
}
// The example displays the following output:
//       Two Digit Year Range: 1930 - 2029
//       1/24/1949
//       
//       Two Digit Year Range: 2000 - 2099
//       1/24/2049
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Dim fmt As String = "dd-MMM-yy"
      Dim value As String = "24-Jan-49"
      
      Dim cal As Calendar = CType(CultureInfo.CurrentCulture.Calendar.Clone(), Calendar)
      Console.WriteLine("Two Digit Year Range: {0} - {1}", 
                        cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax)
      
      Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, Nothing))
      Console.WriteLine()
      
      cal.TwoDigitYearMax = 2099
      Dim culture As CultureInfo = CType(CultureInfo.CurrentCulture.Clone(), CultureInfo)
      culture.DateTimeFormat.Calendar = cal
      Thread.CurrentThread.CurrentCulture = culture

      Console.WriteLine("Two Digit Year Range: {0} - {1}", 
                        cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax)
      Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, Nothing))
   End Sub
End Module
' The example displays the following output:
'       Two Digit Year Range: 1930 - 2029
'       1/24/1949
'       
'       Two Digit Year Range: 2000 - 2099
'       1/24/2049

В следующем примере настраиваемый описатель формата "yy" используется в строке настраиваемого формата.The following example includes the "yy" custom format specifier in a custom format string.

DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010      
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010      

К таблицеBack to table

Настраиваемый описатель формата "yyy"The "yyy" custom format specifier

Настраиваемый описатель формата "yyy" представляет год в виде как минимум трех цифр.The "yyy" custom format specifier represents the year with a minimum of three digits. Если в году больше трех значащих цифр, то они включаются в результат.If the year has more than three significant digits, they are included in the result string. Если значение года имеет меньше трех цифр, то число дополняется стоящими в начале нулями до трех цифр.If the year has fewer than three digits, the number is padded with leading zeros to produce three digits.

Примечание

Для Тайского (буддистского) календаря, в котором годы могут состоять из пяти цифр, этот описатель формата отображает все значимые цифры.For the Thai Buddhist calendar, which can have five-digit years, this format specifier displays all significant digits.

В следующем примере настраиваемый описатель формата "yyy" используется в строке настраиваемого формата.The following example includes the "yyy" custom format specifier in a custom format string.

DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010      
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010      

К таблицеBack to table

Настраиваемый описатель формата "yyyy"The "yyyy" custom format specifier

Описатель настраиваемого формата "yyyy" представляет год в виде как минимум четырех цифр.The "yyyy" custom format specifier represents the year with a minimum of four digits. Если в году больше четырех значащих цифр, они включаются в результирующую строку.If the year has more than four significant digits, they are included in the result string. Если в году меньше четырех цифр, число дополняется предшествующими нулями до достижения четырех цифр.If the year has fewer than four digits, the number is padded with leading zeros to produce four digits.

Примечание

Для Тайского (буддистского) календаря, в котором годы могут состоять из пяти цифр, этот описатель формата отображает минимум четыре цифры.For the Thai Buddhist calendar, which can have five-digit years, this format specifier displays a minimum of four digits.

В следующем примере настраиваемый описатель формата "yyyy" используется в строке настраиваемого формата.The following example includes the "yyyy" custom format specifier in a custom format string.

DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010      
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010      

К таблицеBack to table

Настраиваемый описатель формата "yyyyy"The "yyyyy" custom format specifier

Описатель настраиваемого формата "yyyyy" (плюс любое число дополнительных описателей "y") представляет год в виде минимум пяти цифр.The "yyyyy" custom format specifier (plus any number of additional "y" specifiers) represents the year with a minimum of five digits. Если в году больше пяти значащих цифр, они включаются в результирующую строку.If the year has more than five significant digits, they are included in the result string. Если в году меньше пяти цифр, то число дополняется стоящими в начале нулями до пяти цифр.If the year has fewer than five digits, the number is padded with leading zeros to produce five digits.

Если имеются дополнительные описатели "y", то число дополняется нулями в начале до достижения указанного количества описателей "у".If there are additional "y" specifiers, the number is padded with as many leading zeros as necessary to produce the number of "y" specifiers.

В следующем примере настраиваемый описатель формата "yyyyy" используется в строке настраиваемого формата.The following example includes the "yyyyy" custom format specifier in a custom format string.

DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010      
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010      

К таблицеBack to table

Настраиваемый описатель формата "z"The "z" custom format specifier

Совместно со значениями DateTime настраиваемый описатель формата "z" представляет указанное со знаком смещение часового пояса локальной операционной системы от времени UTC, измеренное в часах.With DateTime values, the "z" custom format specifier represents the signed offset of the local operating system's time zone from Coordinated Universal Time (UTC), measured in hours. Описатель не отражает значение свойства DateTime.Kind экземпляра.It doesn't reflect the value of an instance's DateTime.Kind property. По этой причине описатель формата "z" не рекомендуется использовать со значениями DateTime.For this reason, the "z" format specifier is not recommended for use with DateTime values.

Для значений DateTimeOffset этот описатель формата представляет смещение значения DateTimeOffset от времени UTC в часах.With DateTimeOffset values, this format specifier represents the DateTimeOffset value's offset from UTC in hours.

Смещение всегда отображается со знаком в начале.The offset is always displayed with a leading sign. Плюс (+) указывает на то, что часы опережают время UTC, а минус (-) — на то, что они от него отстают.A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. Смещение с одной цифрой форматируется без нуля в начале.A single-digit offset is formatted without a leading zero.

Если описатель формата "z" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени и возникает исключение FormatException.If the "z" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

В следующем примере настраиваемый описатель формата "z" используется в строке настраиваемого формата.The following example includes the "z" custom format specifier in a custom format string.

DateTime date1 = DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date1));
// Displays -7, -07, -07:00                     

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0, 
                                          new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date1))
' Displays -7, -07, -07:00                     

Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
                                New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date2))                                     
' Displays +6, +06, +06:00

К таблицеBack to table

Настраиваемый описатель формата "zz"The "zz" custom format specifier

Совместно со значениями DateTime настраиваемый описатель формата "zz" представляет указанное со знаком смещение часового пояса локальной операционной системы от времени UTC, измеренное в часах.With DateTime values, the "zz" custom format specifier represents the signed offset of the local operating system's time zone from UTC, measured in hours. Описатель не отражает значение свойства DateTime.Kind экземпляра.It doesn't reflect the value of an instance's DateTime.Kind property. По этой причине описатель формата "zz" не рекомендуется использовать со значениями DateTime.For this reason, the "zz" format specifier is not recommended for use with DateTime values.

Для значений DateTimeOffset этот описатель формата представляет смещение значения DateTimeOffset от времени UTC в часах.With DateTimeOffset values, this format specifier represents the DateTimeOffset value's offset from UTC in hours.

Смещение всегда отображается со знаком в начале.The offset is always displayed with a leading sign. Плюс (+) указывает на то, что часы опережают время UTC, а минус (-) — на то, что они от него отстают.A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. Смещение с одной цифрой форматируется c нулем в начале.A single-digit offset is formatted with a leading zero.

В следующем примере настраиваемый описатель формата "zz" используется в строке настраиваемого формата.The following example includes the "zz" custom format specifier in a custom format string.

DateTime date1 = DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date1));
// Displays -7, -07, -07:00                     

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0, 
                                          new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date1))
' Displays -7, -07, -07:00                     

Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
                                New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date2))                                     
' Displays +6, +06, +06:00

К таблицеBack to table

Настраиваемый описатель формата "zzz"The "zzz" custom format specifier

Совместно со значениями DateTime настраиваемый описатель формата "zzz" представляет указанное со знаком смещение часового пояса локальной операционной системы от времени UTC, измеренное в часах и минутах.With DateTime values, the "zzz" custom format specifier represents the signed offset of the local operating system's time zone from UTC, measured in hours and minutes. Описатель не отражает значение свойства DateTime.Kind экземпляра.It doesn't reflect the value of an instance's DateTime.Kind property. По этой причине описатель формата "zzz" не рекомендуется использовать со значениями DateTime.For this reason, the "zzz" format specifier is not recommended for use with DateTime values.

Для значений DateTimeOffset этот описатель формата представляет смещение значения DateTimeOffset от времени UTC в часах и минутах.With DateTimeOffset values, this format specifier represents the DateTimeOffset value's offset from UTC in hours and minutes.

Смещение всегда отображается со знаком в начале.The offset is always displayed with a leading sign. Плюс (+) указывает на то, что часы опережают время UTC, а минус (-) — на то, что они от него отстают.A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. Смещение с одной цифрой форматируется c нулем в начале.A single-digit offset is formatted with a leading zero.

В следующем примере настраиваемый описатель формата "zzz" используется в строке настраиваемого формата.The following example includes the "zzz" custom format specifier in a custom format string.

DateTime date1 = DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date1));
// Displays -7, -07, -07:00                     

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0, 
                                          new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date1))
' Displays -7, -07, -07:00                     

Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
                                New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date2))                                     
' Displays +6, +06, +06:00

К таблицеBack to table

Настраиваемый описатель формата ":"The ":" custom format specifier

Настраиваемый описатель формата ":" представляет разделитель компонентов времени, который используется для разделения часов, минут и секунд.The ":" custom format specifier represents the time separator, which is used to differentiate hours, minutes, and seconds. Соответствующий локализованный разделитель компонентов времени извлекается из свойства DateTimeFormatInfo.TimeSeparator текущей или заданной среды языка и региональных параметров.The appropriate localized time separator is retrieved from the DateTimeFormatInfo.TimeSeparator property of the current or specified culture.

Примечание

Чтобы изменить разделитель времени для определенной строки даты и времени, укажите знак разделителя в разделителе строк-литералов.To change the time separator for a particular date and time string, specify the separator character within a literal string delimiter. Например, строка настраиваемого формата hh'_'dd'_'ss выдает результирующую строку, в которой "_" (подчеркивание) всегда используется в качестве разделителя времени.For example, the custom format string hh'_'dd'_'ss produces a result string in which "_" (an underscore) is always used as the time separator. Чтобы изменить разделитель времени для всех дат для языка и региональных параметров, нужно либо изменить значение свойства DateTimeFormatInfo.TimeSeparator текущего языка и региональных параметров, либо создать объект DateTimeFormatInfo, назначить его свойству TimeSeparator знак и вызвать перегрузку метода форматирования, в который входит параметр IFormatProvider.To change the time separator for all dates for a culture, either change the value of the DateTimeFormatInfo.TimeSeparator property of the current culture, or instantiate a DateTimeFormatInfo object, assign the character to its TimeSeparator property, and call an overload of the formatting method that includes an IFormatProvider parameter.

Если описатель формата ":" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени и возникает исключение FormatException.If the ":" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

К таблицеBack to table

Настраиваемый описатель формата "/"The "/" custom format specifier

Описатель настраиваемого формата "/" представляет разделитель компонентов даты, который используется для разделения года, месяца и дня.The "/" custom format specifier represents the date separator, which is used to differentiate years, months, and days. Соответствующий локализованный разделитель компонентов даты извлекается из свойства DateTimeFormatInfo.DateSeparator текущей или заданной среды языка и региональных параметров.The appropriate localized date separator is retrieved from the DateTimeFormatInfo.DateSeparator property of the current or specified culture.

Примечание

Чтобы изменить разделитель даты для определенной строки даты и времени, укажите знак разделителя в разделителе строк-литералов.To change the date separator for a particular date and time string, specify the separator character within a literal string delimiter. Например, строка настраиваемого формата mm'/'dd'/'yyyy выдает результирующую строку, в которой "/" всегда используется в качестве разделителя даты.For example, the custom format string mm'/'dd'/'yyyy produces a result string in which "/" is always used as the date separator. Чтобы изменить разделитель даты для всех дат для языка и региональных параметров, нужно либо изменить значение свойства DateTimeFormatInfo.DateSeparator текущего языка и региональных параметров, либо создать объект DateTimeFormatInfo, назначить его свойству DateSeparator знак и вызвать перегрузку метода форматирования, в который входит параметр IFormatProvider.To change the date separator for all dates for a culture, either change the value of the DateTimeFormatInfo.DateSeparator property of the current culture, or instantiate a DateTimeFormatInfo object, assign the character to its DateSeparator property, and call an overload of the formatting method that includes an IFormatProvider parameter.

Если описатель формата "/" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени и возникает исключение FormatException.If the "/" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

К таблицеBack to table

Символьные литералыCharacter literals

Следующие символы в строке настраиваемого формата даты являются зарезервированными. Они всегда интерпретируются как символы форматирования, а символы ", ', / и \ интерпретируются как специальные символы.The following characters in a custom date and time format string are reserved and are always interpreted as formatting characters or, in the case of ", ', /, and \, as special characters.

CF HH KK MM dd
ff нg hh mm ss
тt yy зz % ::
/ "" '' \\

Все остальные символы всегда интерпретируется как символьные литералы. В операции форматирования они включаются в результирующую строку без изменений.All other characters are always interpreted as character literals and, in a formatting operation, are included in the result string unchanged. В операции анализа они должны точно соответствовать символам во входной строке. При сравнении учитывается регистр.In a parsing operation, they must match the characters in the input string exactly; the comparison is case-sensitive.

В следующем примере литеральные символы "PST" (стандартное тихоокеанское время) и "PDT" (тихоокеанское летнее время) представляют в строке формата местный часовой пояс.The following example includes the literal characters "PST" (for Pacific Standard Time) and "PDT" (for Pacific Daylight Time) to represent the local time zone in a format string. Обратите внимание, что строка включена в результирующую строку и строка, которая включает строку местного часового пояса зоны местного времени, успешно проходит синтаксический анализ.Note that the string is included in the result string, and that a string that includes the local time zone string also parses successfully.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      String[] formats = { "dd MMM yyyy hh:mm tt PST", 
                           "dd MMM yyyy hh:mm tt PDT" };
      var dat = new DateTime(2016, 8, 18, 16, 50, 0);
      // Display the result string. 
      Console.WriteLine(dat.ToString(formats[1]));
      
      // Parse a string. 
      String value = "25 Dec 2016 12:00 pm PST";
      DateTime newDate;
      if (DateTime.TryParseExact(value, formats, null, 
                                 DateTimeStyles.None, out newDate)) 
         Console.WriteLine(newDate);
      else
         Console.WriteLine("Unable to parse '{0}'", value);
   }
}
// The example displays the following output:
//       18 Aug 2016 04:50 PM PDT
//       12/25/2016 12:00:00 PM
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim formats() As String = { "dd MMM yyyy hh:mm tt PST", 
                                  "dd MMM yyyy hh:mm tt PDT" }
      Dim dat As New Date(2016, 8, 18, 16, 50, 0)
      ' Display the result string. 
      Console.WriteLine(dat.ToString(formats(1)))
      
      ' Parse a string. 
      Dim value As String = "25 Dec 2016 12:00 pm PST"
      Dim newDate As Date
      If Date.TryParseExact(value, formats, Nothing, 
                            DateTimeStyles.None, newDate) Then 
         Console.WriteLine(newDate)
      Else
         Console.WriteLine("Unable to parse '{0}'", value)
      End If                               
   End Sub
End Module
' The example displays the following output:
'       18 Aug 2016 04:50 PM PDT
'       12/25/2016 12:00:00 PM

Указать необходимость интерпретации символов как литеральных, а не как зарезервированных, для их последующего включения в результирующую строку или успешного анализа во входной строке можно двумя способами.There are two ways to indicate that characters are to be interpreted as literal characters and not as reserve characters, so that they can be included in a result string or successfully parsed in an input string:

В следующем примере литеральные символы "pst" (стандартное тихоокеанское время) представляют в строке формата местный часовой пояс.The following example includes the literal characters "pst" (for Pacific Standard time) to represent the local time zone in a format string. Поскольку "s" и "t" представляют собой строки настраиваемых форматов даты и времени, перед ними необходимо поставить знак обратной косой черты, чтобы интерпретировать их как символьные литералы.Because both "s" and "t" are custom format strings, both characters must be escaped to be interpreted as character literals.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      String format = "dd MMM yyyy hh:mm tt p\\s\\t";
      var dat = new DateTime(2016, 8, 18, 16, 50, 0);
      // Display the result string. 
      Console.WriteLine(dat.ToString(format));
      
      // Parse a string. 
      String value = "25 Dec 2016 12:00 pm pst";
      DateTime newDate;
      if (DateTime.TryParseExact(value, format, null, 
                                 DateTimeStyles.None, out newDate)) 
         Console.WriteLine(newDate);
      else
         Console.WriteLine("Unable to parse '{0}'", value);
   }
}
// The example displays the following output:
//       18 Aug 2016 04:50 PM PDT
//       12/25/2016 12:00:00 PM
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim fmt As String = "dd MMM yyyy hh:mm tt p\s\t" 
      Dim dat As New Date(2016, 8, 18, 16, 50, 0)
      ' Display the result string. 
      Console.WriteLine(dat.ToString(fmt))
      
      ' Parse a string. 
      Dim value As String = "25 Dec 2016 12:00 pm pst"
      Dim newDate As Date
      If Date.TryParseExact(value, fmt, Nothing, 
                            DateTimeStyles.None, newDate) Then 
         Console.WriteLine(newDate)
      Else
         Console.WriteLine("Unable to parse '{0}'", value)
      End If                               
   End Sub
End Module
' The example displays the following output:
'       18 Aug 2016 04:50 PM pst
'       12/25/2016 12:00:00 PM
  • Путем заключения всей литеральной строки в двойные или одинарные кавычки.By enclosing the entire literal string in quotation marks or apostrophes. Следующий пример аналогичен предыдущему, за исключением того, что "pst" заключается в кавычки, чтобы указать, что вся строка с разделителями должна интерпретироваться как символьные литералы.The following example is like the previous one, except that "pst" is enclosed in quotation marks to indicate that the entire delimited string should be interpreted as character literals.
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      String format = "dd MMM yyyy hh:mm tt \"pst\"";
      var dat = new DateTime(2016, 8, 18, 16, 50, 0);
      // Display the result string. 
      Console.WriteLine(dat.ToString(format));
      
      // Parse a string. 
      String value = "25 Dec 2016 12:00 pm pst";
      DateTime newDate;
      if (DateTime.TryParseExact(value, format, null, 
                                 DateTimeStyles.None, out newDate)) 
         Console.WriteLine(newDate);
      else
         Console.WriteLine("Unable to parse '{0}'", value);
   }
}
// The example displays the following output:
//       18 Aug 2016 04:50 PM PDT
//       12/25/2016 12:00:00 PM
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim fmt As String = "dd MMM yyyy hh:mm tt ""pst"""  
      Dim dat As New Date(2016, 8, 18, 16, 50, 0)
      ' Display the result string. 
      Console.WriteLine(dat.ToString(fmt))
      
      ' Parse a string. 
      Dim value As String = "25 Dec 2016 12:00 pm pst"
      Dim newDate As Date
      If Date.TryParseExact(value, fmt, Nothing, 
                            DateTimeStyles.None, newDate) Then 
         Console.WriteLine(newDate)
      Else
         Console.WriteLine("Unable to parse '{0}'", value)
      End If                               
   End Sub
End Module
' The example displays the following output:
'       18 Aug 2016 04:50 PM pst
'       12/25/2016 12:00:00 PM

ПримечанияNotes

Использование единичных описателей настраиваемого форматаUsing single custom format specifiers

Строка настраиваемого формата даты и времени состоит из двух или более знаков.A custom date and time format string consists of two or more characters. Методы форматирования даты и времени интерпретируют любую односимвольную строку как строку стандартного формата даты и времени.Date and time formatting methods interpret any single-character string as a standard date and time format string. Если они не распознают этот символ как допустимый описатель формата, возникает исключение FormatException.If they don't recognize the character as a valid format specifier, they throw a FormatException. Например, строка формата, состоящая только из описателя "h", интерпретируется как строка стандартного формата даты и времени.For example, a format string that consists only of the specifier "h" is interpreted as a standard date and time format string. Однако в этом случае создается исключение, так как отсутствует описатель стандартного формата даты и времени h.However, in this particular case, an exception is thrown because there is no "h" standard date and timeformat specifier.

Чтобы использовать какой-либо настраиваемый описатель формата даты и времени в качестве единственного описателя в строке формата (т. е. использовать единственный настраиваемый описатель формата "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" или "/"), следует включить пробел до или после описателя или указать описатель формата "%" (процент) перед единственным настраиваемым описателем формата даты и времени.To use any of the custom date and time format specifiers as the only specifier in a format string (that is, to use the "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" custom format specifier by itself), include a space before or after the specifier, or include a percent ("%") format specifier before the single custom date and time specifier.

Например, "%h" интерпретируется как строка настраиваемого формата даты и времени, которая отображает час, представленный текущим значением даты и времени.For example, "%h" is interpreted as a custom date and time format string that displays the hour represented by the current date and time value. Можно также использовать строки формата " h" или "h ", хотя в этом случае в результирующей строке час будет указан с пробелом.You can also use the " h" or "h " format string, although this includes a space in the result string along with the hour. В следующем примере демонстрируется использование этих трех строк формата.The following example illustrates these three format strings.

DateTime dat1 = new DateTime(2009, 6, 15, 13, 45, 0);

Console.WriteLine("'{0:%h}'", dat1);
Console.WriteLine("'{0: h}'", dat1);
Console.WriteLine("'{0:h }'", dat1);
// The example displays the following output:
//       '1'
//       ' 1'
//       '1 '
Dim dat1 As Date = #6/15/2009 1:45PM#

Console.WriteLine("'{0:%h}'", dat1)
Console.WriteLine("'{0: h}'", dat1)
Console.WriteLine("'{0:h }'", dat1)
' The example displays the following output:
'       '1'
'       ' 1'
'       '1 '

Использование escape-символаUsing the Escape Character

Символы "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" и "/" в строке формата интерпретируются как настраиваемые описатели формата, а не как литералы.The "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" characters in a format string are interpreted as custom format specifiers rather than as literal characters. Чтобы такие символы не обрабатывались как описатели формата, можно указывать перед ними обратную косую черту (\), которая представляет собой escape-символ.To prevent a character from being interpreted as a format specifier, you can precede it with a backslash (\), which is the escape character. Наличие escape-символа означает, что следующий за ним символ является литералом, который следует перенести в результирующую строку без изменений.The escape character signifies that the following character is a character literal that should be included in the result string unchanged.

Чтобы включить в результирующую строку обратную косую черту, перед ней нужно поставить дополнительную обратную косую черту (\\).To include a backslash in a result string, you must escape it with another backslash (\\).

Примечание

Кроме того, в некоторых компиляторах, например компиляторах C++ и C#, одиночная обратная косая черта также может восприниматься как escape-символ.Some compilers, such as the C++ and C# compilers, may also interpret a single backslash character as an escape character. Чтобы гарантировать, что строка будет правильно воспринята при форматировании, можно поставить символ буквального строкового литерала (символ "@") перед строкой в C# или добавить дополнительный символ обратной косой черты перед каждой обратной косой чертой в C# и C++.To ensure that a string is interpreted correctly when formatting, you can use the verbatim string literal character (the @ character) before the string in C#, or add another backslash character before each backslash in C# and C++. В следующем примере кода на языке C# демонстрируются оба подхода.The following C# example illustrates both approaches.

В следующем примере с помощью escape-символа предотвращается интерпретация операцией форматирования символов "h" и "m" в качестве описателей формата.The following example uses the escape character to prevent the formatting operation from interpreting the "h" and "m" characters as format specifiers.

DateTime date = new DateTime(2009, 06, 15, 13, 45, 30, 90);
string fmt1 = "h \\h m \\m";
string fmt2 = @"h \h m \m";

Console.WriteLine("{0} ({1}) -> {2}", date, fmt1, date.ToString(fmt1));
Console.WriteLine("{0} ({1}) -> {2}", date, fmt2, date.ToString(fmt2));
// The example displays the following output:
//       6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m
//       6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m      
Dim date1 As Date = #6/15/2009 13:45#
Dim fmt As String = "h \h m \m"

Console.WriteLine("{0} ({1}) -> {2}", date1, fmt, date1.ToString(fmt))
' The example displays the following output:
'       6/15/2009 1:45:00 PM (h \h m \m) -> 1 h 45 m      

Параметры панели управленияControl Panel settings

На результирующую строку, отформатированную с большим количеством описателей формата даты и времени, влияют параметры, задаваемые в разделе Язык и региональные стандарты панели управления.The Regional and Language Options settings in Control Panel influence the result string produced by a formatting operation that includes many of the custom date and time format specifiers. Эти параметры используются для инициализации объекта DateTimeFormatInfo, связанного с текущими региональными параметрами потока, который предоставляет значения, используемые для управления форматированием.These settings are used to initialize the DateTimeFormatInfo object associated with the current thread culture, which provides values used to govern formatting. Результирующие строки будут различаться на компьютерах с разными параметрами.Computers that use different settings generate different result strings.

Кроме того, если конструктор CultureInfo.CultureInfo(String) используется для создания экземпляра объекта CultureInfo, который представляет язык и региональные параметры, аналогичные текущему языку и региональным параметрам системы, все настройки, заданные в разделе Язык и региональные стандарты панели управления, будут применяться к новому объекту CultureInfo.In addition, if you use the CultureInfo.CultureInfo(String) constructor to instantiate a new CultureInfo object that represents the same culture as the current system culture, any customizations established by the Regional and Language Options item in Control Panel will be applied to the new CultureInfo object. Можно воспользоваться конструктором CultureInfo.CultureInfo(String, Boolean) для создания объекта CultureInfo, который не отражает настройки системы.You can use the CultureInfo.CultureInfo(String, Boolean) constructor to create a CultureInfo object that doesn't reflect a system's customizations.

Свойства DateTimeFormatInfoDateTimeFormatInfo properties

На форматирование влияют свойства текущего объекта DateTimeFormatInfo, которые задаются либо неявно, языком и региональными параметрами текущего потока, либо явно, параметром IFormatProvider метода, который вызывает форматирование.Formatting is influenced by properties of the current DateTimeFormatInfo object, which is provided implicitly by the current thread culture or explicitly by the IFormatProvider parameter of the method that invokes formatting. Для параметра IFormatProvider необходимо указать объект CultureInfo, представляющий язык и региональные параметры, или объект DateTimeFormatInfo.For the IFormatProvider parameter, you should specify a CultureInfo object, which represents a culture, or a DateTimeFormatInfo object.

Результирующая строка, формируемая многими настраиваемыми описателями формата даты и времени, также зависит от свойств текущего объекта DateTimeFormatInfo.The result string produced by many of the custom date and time format specifiers also depends on properties of the current DateTimeFormatInfo object. Приложение может изменить результат использования некоторых описателей настраиваемых форматов даты и времени, изменив соответствующее свойство DateTimeFormatInfo.Your application can change the result produced by some custom date and time format specifiers by changing the corresponding DateTimeFormatInfo property. Например, описатель формата "ddd" добавляет в результирующую строку сокращенное название дня недели, найденное в массиве строк AbbreviatedDayNames.For example, the "ddd" format specifier adds an abbreviated weekday name found in the AbbreviatedDayNames string array to the result string. Аналогичным образом описатель формата "MMMM" добавляет в результирующую строку полное название месяца, найденное в массиве строк MonthNames.Similarly, the "MMMM" format specifier adds a full month name found in the MonthNames string array to the result string.

См. такжеSee also