Строки настраиваемых форматов даты и времени

Строки форматов даты и времени определяют текстовое представление значений DateTime и DateTimeOffset, получаемое после операции форматирования. Также они могут определять представление значения даты и времени, необходимое при операции синтаксического анализа для успешного преобразования строки в дату и время. Строка настраиваемого формата состоит из одного или нескольких настраиваемых описателей формата даты и времени. Любая строка, не являющаяся строкой стандартного формата даты и времени, воспринимается как строка настраиваемого формата даты и времени.

Строки настраиваемого формата даты и времени могут использоваться как со значением DateTime, так и со значением DateTimeOffset.

СоветСовет

Можно загрузить программу Format Utility — приложение, позволяющее применять строки формата к значениям даты и времени и числовым значениям и отображающее результирующую строку.

В операциях форматирования пользовательские строки формата даты и времени можно использовать с методом ToString экземпляра даты и времени или с методом, поддерживающим составное форматирование. В следующем примере демонстрируются оба варианта использования.

 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 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

В операциях синтаксического анализа пользовательские строки формата даты и времени можно использовать с методами DateTime.ParseExact, DateTime.TryParseExact, DateTimeOffset.ParseExact и DateTimeOffset.TryParseExact. Чтобы операция синтаксического анализа прошла успешно, эти методы требуют, чтобы входная строка строго соответствовала конкретному шаблону. В следующем примере демонстрируется вызов метода DateTimeOffset.ParseExact(String, String, IFormatProvider) для анализа даты, которая должна включать в себя указание дня, месяца и года из двух цифр.

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.
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.

В следующей таблице приведены настраиваемые описатели формата даты и времени с примерами строк, формируемых каждым описателем формата. Если конкретный описатель формата создает локализованную строку, то в примере также указываются язык и региональные параметры, для которых применяется полученная строка. Дополнительные сведения об использовании настраиваемых строк формата даты и времени см. в подразделе Примечания.

Описатель формата

Описание

Примеры

"d"

День месяца, в диапазоне от 1 до 31.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "d".

6/1/2009 1:45:30 PM -> 1

6/15/2009 1:45:30 PM -> 15

"dd"

День месяца, в диапазоне от 01 до 31.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "dd".

6/1/2009 1:45:30 PM -> 01

6/15/2009 1:45:30 PM -> 15

"ddd"

Сокращенное название дня недели.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "ddd".

6/15/2009 1:45:30 PM -> Mon (en-US)

6/15/2009 1:45:30 PM -> Пн (ru-RU)

6/15/2009 1:45:30 PM -> lun. (fr-FR)

"dddd"

Полное название дня недели.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "dddd".

6/15/2009 1:45:30 PM -> Monday (en-US)

6/15/2009 1:45:30 PM -> понедельник (ru-RU)

6/15/2009 1:45:30 PM -> lundi (fr-FR)

"f"

Десятые доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "f".

6/15/2009 13:45:30.617 -> 6

6/15/2009 13:45:30.050 -> 0

"ff"

Сотые доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "ff".

6/15/2009 13:45:30.617 -> 61

6/15/2009 13:45:30.005 -> 00

"fff"

Тысячные доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "fff".

6/15/2009 13:45:30.617 -> 617

6/15/2009 13:45:30.0005 -> 000

"ffff"

Десятитысячные доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "ffff".

6/15/2009 13:45:30.6175 -> 6175

6/15/2009 13:45:30.00005 -> 0000

"fffff"

Стотысячные доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "fffff".

6/15/2009 13:45:30.61754 -> 61754

6/15/2009 13:45:30.000005 -> 00000

"ffffff"

Миллионные доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "ffffff".

6/15/2009 13:45:30.617542 -> 617542

6/15/2009 13:45:30.0000005 -> 000000

"дсссссс"

Десятимиллионные доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "fffffff".

6/15/2009 13:45:30.6175425 -> 6175425

6/15/2009 13:45:30.0001150 -> 0001150

"F"

Если ненулевое значение, то десятые доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "F".

6/15/2009 13:45:30.617 -> 6

6/15/2009 13:45:30.050 -> (нет вывода)

"FF"

Если ненулевое значение, то сотые доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "FF".

6/15/2009 13:45:30.617 -> 61

6/15/2009 13:45:30.005 -> (нет вывода)

"FFF"

Если ненулевое значение, то тысячные доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "FFF".

6/15/2009 13:45:30.617 -> 617

6/15/2009 13:45:30.0005 -> (нет вывода)

"FFFF"

Если ненулевое значение, то десятитысячные доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "FFFF".

6/1/2009 13:45:30.5275 -> 5275

6/15/2009 13:45:30.00005 -> (нет вывода)

"FFFFF"

Если ненулевое значение, то стотысячные доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "FFFFF".

6/15/2009 13:45:30.61754 -> 61754

6/15/2009 13:45:30.000005 -> (нет вывода)

"FFFFFF"

Если ненулевое значение, то миллионные доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "FFFFFF".

6/15/2009 13:45:30.617542 -> 617542

6/15/2009 13:45:30.0000005 -> (нет вывода)

"FFFFFFF"

Если ненулевое значение, то десятимиллионные доли секунды в значении даты и времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "FFFFFFF".

6/15/2009 13:45:30.6175425 -> 6175425

6/15/2009 13:45:30.0001150 -> 000115

"g", "gg"

Период или эра.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "g" или "gg".

6/15/2009 1:45:30 PM -> A.D.

"h"

Час в 12-часовом формате от 1 до 12.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "h".

6/15/2009 1:45:30 AM -> 1

6/15/2009 1:45:30 PM -> 1

"чч"

Час в 12-часовом формате от 01 до 12.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "hh".

6/15/2009 1:45:30 AM -> 01

6/15/2009 1:45:30 PM -> 01

"H"

Час в 24-часовом формате от 0 до 23.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "H".

6/15/2009 1:45:30 AM -> 1

6/15/2009 1:45:30 PM -> 13

"HH"

Час в 24-часовом формате от 00 до 23.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "HH".

6/15/2009 1:45:30 AM -> 01

6/15/2009 1:45:30 PM -> 13

"K"

Данные о часовом поясе.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "K".

Со значениями DateTime:

6/15/2009 1:45:30 PM, Kind Unspecified ->

6/15/2009 1:45:30 PM, Kind Utc -> Z

6/15/2009 1:45:30 PM, Kind Local -> -07:00 (зависит от настроек локального компьютера)

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

6/15/2009 1:45:30 AM -07:00 --> -07:00

6/15/2009 8:45:30 AM +00:00 --> +00:00

"m"

Минуты, в диапазоне от "0" до "59".

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "m".

6/15/2009 1:09:30 AM -> 9

6/15/2009 1:09:30 PM -> 9

"mm"

Минуты, в диапазоне от 00 до 59.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "mm".

6/15/2009 1:09:30 AM -> 09

6/15/2009 1:09:30 PM -> 09

"M"

Месяц, в диапазоне от 1 до 12.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "M".

6/15/2009 1:45:30 PM -> 6

"MM"

Месяц, в диапазоне от 01 до 12.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "MM".

6/15/2009 1:45:30 PM -> 06

"MMM"

Сокращенное название месяца.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "MMM".

6/15/2009 1:45:30 PM -> Jun (en-US)

6/15/2009 1:45:30 PM -> juin (fr-FR)

6/15/2009 1:45:30 PM -> Jun (zu-ZA)

"MMMM"

Полное название месяца.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "MMMM".

6/15/2009 1:45:30 PM -> June (en-US)

6/15/2009 1:45:30 PM -> juni (da-DK)

6/15/2009 1:45:30 PM -> uJuni (zu-ZA)

"s"

Секунды, в диапазоне от 0 до 59.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "s".

6/15/2009 1:45:09 PM -> 9

"сс"

Секунды, в диапазоне от 00 до 59.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "ss".

6/15/2009 1:45:09 PM -> 09

"t"

Первый символ указателя AM/PM (до полудня/после полудня).

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "t".

6/15/2009 1:45:30 PM -> P (en-US)

6/15/2009 1:45:30 PM -> 午 (ja-JP)

6/15/2009 1:45:30 PM -> (fr-FR)

"tt"

Указатель AM/PM (до полудня/после полудня).

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "tt".

6/15/2009 1:45:30 PM -> PM (en-US)

6/15/2009 1:45:30 PM -> 午後 (ja-JP)

6/15/2009 1:45:30 PM -> (fr-FR)

"y"

Год, в диапазоне от 0 до 99.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "y".

1/1/0001 12:00:00 AM -> 1

1/1/0900 12:00:00 AM -> 0

1/1/1900 12:00:00 AM -> 0

6/15/2009 1:45:30 PM -> 9

"yy"

Год, в диапазоне от 00 до 99.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "yy".

1/1/0001 12:00:00 AM -> 01

1/1/0900 12:00:00 AM -> 00

1/1/1900 12:00:00 AM -> 00

6/15/2009 1:45:30 PM -> 09

"yyy"

Год в виде как минимум трех цифр.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "yyy".

1/1/0001 12:00:00 AM -> 001

1/1/0900 12:00:00 AM -> 900

1/1/1900 12:00:00 AM -> 1900

6/15/2009 1:45:30 PM -> 2009

"yyyy"

Год в виде четырехзначного числа.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "yyyy".

1/1/0001 12:00:00 AM -> 0001

1/1/0900 12:00:00 AM -> 0900

1/1/1900 12:00:00 AM -> 1900

6/15/2009 1:45:30 PM -> 2009

"yyyyy"

Год в виде пятизначного числа.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "yyyyy".

1/1/0001 12:00:00 AM -> 00001

6/15/2009 1:45:30 PM -> 02009

"z"

Часовой сдвиг от времени в формате UTC (универсального времени), без нулей в начале.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "z".

6/15/2009 1:45:30 PM -07:00 -> -7

"zz"

Часовой сдвиг от времени в формате UTC (универсального времени) с нулями в начале для значений из одной цифры.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "zz".

6/15/2009 1:45:30 PM -07:00 -> -07

"zzz"

Сдвиг в часах и минутах от времени в формате UTC (универсального времени).

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "zzz".

6/15/2009 1:45:30 PM -07:00 -> -07:00

":"

Разделитель компонентов времени.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата ":".

6/15/2009 1:45:30 PM -> : (en-US)

6/15/2009 1:45:30 PM -> . (it-IT)

6/15/2009 1:45:30 PM -> : (ja-JP)

"/"

Разделитель компонентов даты.

Дополнительные сведения см. в подразделе Настраиваемый описатель формата "/".

6/15/2009 1:45:30 PM -> / (en-US)

6/15/2009 1:45:30 PM -> - (ar-DZ)

6/15/2009 1:45:30 PM -> . (tr-TR)

"строка"

'строка'

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

6/15/2009 1:45:30 PM ("arr:" h:m t) -> arr: 1:45 P

6/15/2009 1:45:30 PM ('arr:' h:m t) -> arr: 1:45 P

%

Задает следующий символ в качестве настраиваемого описателя формата.

Дополнительные сведения см. в подразделе Использование единичных настраиваемых описателей формата.

6/15/2009 1:45:30 PM (%h) -> 1

\

Escape-символ.

6/15/2009 1:45:30 PM (h \h) -> 1 h

Любой другой знак

Символ копируется в результирующую строку без изменений.

Дополнительные сведения см. в подразделе Использование escape-символов.

6/15/2009 1:45:30 AM (arr hh:mm t) -> arr 01:45 A

В следующих подразделах предоставляются дополнительные сведения о всех настраиваемых описателях формата даты и времени. Если не указано иное, каждый настраиваемый описатель формата даты и времени формирует одинаковое строковое представление независимо от того, используется ли он со значением DateTime или со значением DateTimeOffset.

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

Настраиваемый описатель формата "d" представляет день месяца в виде числа в диапазоне от 1 до 31. День в виде одной цифры форматируется без нуля в начале.

Если описатель формата "d" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "d" стандартного формата даты и времени. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере настраиваемый описатель формата "d" используется в нескольких строках формата.

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                                                
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                                                

К таблице

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

Настраиваемый описатель формата "dd" представляет день месяца в виде числа в диапазоне от 01 до 31. День в виде одной цифры форматируется с нулем в начале.

В следующем примере настраиваемый описатель формата "dd" используется в строке настраиваемого формата.

Dim date1 As Date = #1/2/2008 6:30:15AM#

Console.WriteLine(date1.ToString("dd, MM", _
                  CultureInfo.InvariantCulture)) 
' 02, 01
DateTime date1 = new DateTime(2008, 1, 2, 6, 30, 15);

Console.WriteLine(date1.ToString("dd, MM", 
                  CultureInfo.InvariantCulture)); 
// 02, 01

К таблице

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

Настраиваемый описатель формата "ddd" представляет сокращенное название дня недели. Локализованное сокращенное название дня недели извлекается из свойства DateTimeFormatInfo.AbbreviatedDayNames текущей или заданной среды языка и региональных параметров.

В следующем примере описатель настраиваемый описатель формата "ddd" используется в строке настраиваемого формата.

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                                                
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                                                

К таблице

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

Настраиваемый описатель формата "dddd" (плюс любое количество дополнительных описателей "d") представляет полное название дня недели. Локализованное название дня недели извлекается из свойства DateTimeFormatInfo.DayNames текущей или заданной среды языка и региональных параметров.

В следующем примере настраиваемый описатель формата "dddd" используется в строке настраиваемого формата.

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                                          
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                                

К таблице

Настраиваемый описатель формата "f"

Настраиваемый описатель формата "f" представляет наиболее значимую цифру секунд, то есть десятые доли секунды в значении даты и времени.

Если описатель формата "f" используется без других описателей формата, то он интерпретируется как описатель "f" стандартного формата даты и времени. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

При использовании описателей формата "f" в составе строки формата, передаваемой методу ParseExact, TryParseExact, ParseExact или TryParseExact, количество описателей формата "f" указывает на количество наиболее значимых цифр секунд, которые должны присутствовать для обеспечения успешного анализа строки.

В следующем примере настраиваемый описатель формата "f" используется в строке настраиваемого формата.

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
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

К таблице

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

Настраиваемый описатель формата "ff" представляет две наиболее значимые цифры секунд, то есть сотые доли секунды в значении даты и времени.

В следующем примере настраиваемый описатель формата "ff" используется в строке настраиваемого формата.

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
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

К таблице

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

Настраиваемый описатель формата "fff" представляет три наиболее значимые цифры секунд, то есть миллисекунды в значении даты и времени.

В следующем примере настраиваемый описатель формата "fff" используется в строке настраиваемого формата.

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
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

К таблице

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

Настраиваемый описатель формата "ffff" представляет четыре наиболее значимые цифры секунд, то есть десятитысячные доли секунды в значении даты и времени.

Хотя и существует возможность отображения десятитысячных долей секунды в значении времени, это значение может не иметь особого смысла. Точность значений даты и времени зависит от разрешения системных часов. В операционных системах Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.

К таблице

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

Описатель настраиваемого формата "fffff" представляет пять наиболее значимых цифр долей секунды, то есть, стотысячные доли секунды в значении даты и времени.

Хотя и существует возможность отображения стотысячных долей секунды в значении времени, это значение может не иметь особого смысла. Точность значений даты и времени зависит от разрешения системных часов. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.

К таблице

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

Настраиваемый описатель формата "fffff" представляет шесть наиболее значимых цифр секунд, то есть миллионные доли секунды в значении даты и времени.

Хотя и существует возможность отображения миллионных долей секунды, это значение может не иметь особого смысла. Точность значений даты и времени зависит от разрешения системных часов. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.

К таблице

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

Настраиваемый описатель формата "ffffff" представляет семь наиболее значимых цифр секунд, то есть десятимиллионные доли секунды в значении даты и времени.

Хотя и существует возможность отображения десятимиллионных долей секунды, это значение может не иметь особого смысла. Точность значений даты и времени зависит от разрешения системных часов. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.

К таблице

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

Настраиваемый описатель формата "F" представляет наиболее значимую цифру секунд, то есть десятые доли секунды в значении даты и времени. Если цифра равна нулю, то ничего не отображается.

Если описатель формата "F" используется без других описателей формата, то он интерпретируется как описатель "F" стандартного формата даты и времени. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

Число описателей формата "F", используемых с методом ParseExact, TryParseExact, ParseExact или TryParseExact, задает максимальное количество наиболее значимых цифр секунд, которые должны присутствовать для успешного анализа строки.

В следующем примере настраиваемый описатель формата "F" используется в строке настраиваемого формата.

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
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

К таблице

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

Настраиваемый описатель формата "FF" представляет две наиболее значимые цифры секунд, то есть сотые доли секунды в значении даты и времени. При этом нули в конце или два нуля не отображаются.

В следующем примере настраиваемый описатель формата "FF" используется в строке настраиваемого формата.

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
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

К таблице

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

Настраиваемый описатель формата "FFF" представляет три наиболее значимые цифры секунд, то есть миллисекунды в значении даты и времени. При этом нули в конце или три нуля не отображаются.

В следующем примере настраиваемый описатель формата "FFF" используется в строке настраиваемого формата.

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
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

К таблице

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

Настраиваемый описатель формата "FFFF" представляет четыре наиболее значимые цифры секунд, то есть десятитысячные доли секунды в значении даты и времени. При этом нули в конце или четыре нуля не отображаются.

Хотя и существует возможность отображения десятитысячных долей секунды в значении времени, это значение может не иметь особого смысла. Точность значений даты и времени зависит от разрешения системных часов. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.

К таблице

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

Настраиваемый описатель формата "FFFFF" представляет пять наиболее значимых цифр секунд, то есть стотысячные доли секунды в значении даты и времени. При этом нули в конце или пять нулей не отображаются.

Хотя и существует возможность отображения стотысячных долей секунды в значении времени, это значение может не иметь особого смысла. Точность значений даты и времени зависит от разрешения системных часов. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.

К таблице

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

Настраиваемый описатель формата "FFFFFF" представляет шесть наиболее значимых цифр секунд, то есть миллионные доли секунды в значении даты и времени. При этом нули в конце или шесть нулей не отображаются.

Хотя и существует возможность отображения миллионных долей секунды, это значение может не иметь особого смысла. Точность значений даты и времени зависит от разрешения системных часов. В операционных системах Windows NT, начиная с версии 3.5, и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.

К таблице

Описатель настраиваемого формата "FFFFFFF"

Настраиваемый описатель формата "FFFFFFF" представляет семь наиболее значимых цифр секунд, то есть десятимиллионные доли секунды в значении даты и времени. При этом нули в конце или семь нулей не отображаются.

Хотя и существует возможность отображения десятимиллионных долей секунды, это значение может не иметь особого смысла. Точность значений даты и времени зависит от разрешения системных часов. В операционной системе Windows NT начиная с версии 3.5 и Windows Vista разрешение часов приблизительно соответствует 10–15 миллисекундам.

К таблице

Настраиваемый описатель формата "g" или "gg"

Настраиваемые описатели формата "g" и "gg" (плюс любое число дополнительных описателей "g") представляют период или эру, например A.D. (н. э.). Операция форматирования игнорирует этот описатель, если форматируемой дате не сопоставлена строка периода или эры.

Если описатель формата "g" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "g" стандартного формата даты и времени. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере настраиваемый описатель формата "g" используется в строке настраиваемого формата.

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.
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.

К таблице

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

Настраиваемый описатель формата "h" представляет часы в виде числа в диапазоне от 1 до 12, то есть в 12-часовом формате, в котором полные часы отсчитываются от полуночи или от полудня. Час после полуночи неотличим от того же часа после полудня. Часы не округляются, и часы с одной цифрой форматируются без нуля в начале. Например, для времени 5:43 утра или вечера этот настраиваемый описатель формата выведет "5".

Если описатель формата "h" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени, и возникает исключение FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере настраиваемый описатель формата "h" используется в строке настраиваемого формата.

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 µ
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 µ

К таблице

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

Настраиваемый описатель формата "hh" (плюс любое количество дополнительных описателей "h") представляет часы в виде числа в диапазоне от 01 до 12, то есть в 12-часовом формате, в котором полные часы отсчитываются от полуночи или от полудня. Час после полуночи неотличим от того же часа после полудня. Часы не округляются, и часы с одной цифрой форматируются с нулем в начале. Например, для времени 5:43 утра или вечера этот описатель формата выведет "05".

В следующем примере настраиваемый описатель формата "hh" используется в строке настраиваемого формата.

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.
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.

К таблице

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

Настраиваемый описатель формата "H" представляет часы в виде числа в диапазоне от 0 до 23, то есть в 24-часовом формате, в котором полные часы отсчитываются от полуночи, начиная с 0. Часы с одной цифрой форматируются без нуля в начале.

Если описатель формата "H" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени, и возникает исключение FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере настраиваемый описатель формата "H" используется в строке настраиваемого формата.

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

К таблице

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

Настраиваемый описатель формата "HH" (плюс любое количество дополнительных описателей "H") представляет часы в виде числа в диапазоне от 00 до 23, то есть в 24-часовом формате, в котором полные часы отсчитываются от полуночи начиная с 0. Часы с одной цифрой форматируются с нулем в начале.

В следующем примере настраиваемый описатель формата "HH" используется в строке настраиваемого формата.

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

К таблице

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

Настраиваемый описатель формата "K" представляет данные о часовом поясе значения даты и времени. При использовании этого описателя формата со значениями DateTime результирующая строка определяется значением свойства DateTime.Kind:

  • Для местного часового пояса (свойства DateTime.Kind со значением DateTimeKind.Local) этот описатель равнозначен описателю "zzz" и формирует результирующую строку, содержащую локальное смещение от универсального времени (UTC), например "-07:00".

  • Для времени UTC (свойства DateTime.Kind со значением DateTimeKind.Utc) результирующая строка содержит знак "Z", указывающий дату в формате UTC.

  • Для времени в неопределенном часовом поясе (времени, свойство DateTime.Kind которого имеет значение DateTimeKind.Unspecified) результат равен String.Empty.

Для значений DateTimeOffset описатель формата "K" равнозначен описателю формата "zz", который формирует результирующую строку, содержащую смещение значения от времени UTC в виде DateTimeOffset.

Если описатель формата "K" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени, и возникает исключение FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере показаны строки, полученные в результате использования настраиваемого описателя формата "K" с различными значениями DateTime и DateTimeOffset для системы, находящейся в в тихоокеанском часовом поясе США.

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                        
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                        

К таблице

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

Настраиваемый описатель формата "m" представляет минуты в виде числа в диапазоне от 0 до 59. Это число целых минут, прошедших с последнего часа. Минуты с одной цифрой форматируются без нуля в начале.

Если описатель формата "m" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "m" стандартного формата даты и времени. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере настраиваемый описатель формата "m" используется в строке настраиваемого формата.

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 µ
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 µ

К таблице

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

Настраиваемый описатель формата "mm" (плюс любое число дополнительных описателей "m") представляет минуты в виде числа в диапазоне от 00 до 59. Это число целых минут, прошедших с последнего часа. Минуты с одной цифрой форматируются с нулем в начале.

В следующем примере настраиваемый описатель формата "mm" используется в строке настраиваемого формата.

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.
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.

К таблице

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

Описатель настраиваемого формата "М" представляет месяц как число от "1" до "12" (или от "1" до "13" для календарей, в которых 13 месяцев). Месяц, номер которого представляет одну цифру, форматируется без нуля в начале.

Если описатель формата "M" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "M" стандартного формата даты и времени. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере настраиваемый описатель формата "M" используется в строке настраиваемого формата.

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                       
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                       

К таблице

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

Описатель настраиваемого формата "ММ" представляет месяц как число от "01" до "12" (или от "1" до "13" для календарей, в которых 13 месяцев). Месяц, номер которого представляет одну цифру, форматируется с нулем в начале.

В следующем примере настраиваемый описатель формата "MM" используется в строке настраиваемого формата.

Dim date1 As Date = #1/2/2008 6:30:15AM#

Console.WriteLine(date1.ToString("dd, MM", _
                  CultureInfo.InvariantCulture)) 
' 02, 01
DateTime date1 = new DateTime(2008, 1, 2, 6, 30, 15);

Console.WriteLine(date1.ToString("dd, MM", 
                  CultureInfo.InvariantCulture)); 
// 02, 01

К таблице

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

Настраиваемый описатель формата "MMM" представляет сокращенное название месяца. Локализованное сокращенное название месяца извлекается из свойства DateTimeFormatInfo.AbbreviatedMonthNames текущей или заданной среды языка и региональных параметров.

В следующем примере настраиваемый описатель формата "MMM" используется в строке настраиваемого формата.

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                                                
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                                                

К таблице

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

Настраиваемый описатель формата "MMMM" представляет полное название месяца. Локализованное название месяца извлекается из свойства DateTimeFormatInfo.MonthNames текущей или заданной среды языка и региональных параметров.

В следующем примере настраиваемый описатель формата "MMMM" используется в строке настраиваемого формата.

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                                          
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                                

К таблице

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

Настраиваемый описатель формата "s" представляет секунды в виде числа в диапазоне от 0 до 59. Это число целых секунд, прошедших с последней полной минуты. Секунды с одной цифрой форматируются без нуля в начале.

Если описатель формата "s" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "s" стандартного формата даты и времени. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере настраиваемый описатель формата "s" используется в строке настраиваемого формата.

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 µ
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 µ

К таблице

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

Настраиваемый описатель формата "ss" (плюс любое число дополнительных описателей "s") представляет секунды в виде числа в диапазоне от 00 до 59. Это число целых секунд, прошедших с последней полной минуты. Секунды с одной цифрой форматируются с нулем в начале.

В следующем примере настраиваемый описатель формата "ss" используется в строке настраиваемого формата.

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.
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.

К таблице

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

Настраиваемый описатель формата "t" представляет первый символ указателя AM/PM (до полудня/после полудня). Соответствующий локализованный указатель извлекается из свойства DateTimeFormatInfo.AMDesignator или DateTimeFormatInfo.PMDesignator текущей или заданной среды языка и региональных параметров. Указатель AM (до полудня) используется для всех значений времени от 0:00:00 (от полуночи) до 11:59:59.999. Указатель PM (после полудня) используется для всех значений времени от 12:00:00 (от полудня) до 23:59:59.99.

Если описатель формата "t" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "t" стандартного формата даты и времени. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере настраиваемый описатель формата "t" используется в строке настраиваемого формата.

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 µ
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 µ

К таблице

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

Настраиваемый описатель формата "tt" (плюс любое количество дополнительных описателей "t") представляет полный указатель AM/PM (до полудня/после полудня). Соответствующий локализованный указатель извлекается из свойства DateTimeFormatInfo.AMDesignator или DateTimeFormatInfo.PMDesignator текущей или заданной среды языка и региональных параметров. Указатель AM (до полудня) используется для всех значений времени от 0:00:00 (от полуночи) до 11:59:59.999. Указатель PM (после полудня) используется для всех значений времени от 12:00:00 (от полудня) до 23:59:59.99.

Следует проверить, используется ли описатель "tt" для тех языков, в которых необходимо поддерживать различие между временем до полудня и после полудня. Например, японский язык, для которого AM и PM указатели различаются во втором символе вместо первого.

В следующем примере настраиваемый описатель формата "tt" используется в строке настраиваемого формата.

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.
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.

К таблице

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

Настраиваемый описатель формата "y" представляет год в виде одно- или двузначного числа. Если год имеет более двух цифр, то в результате отображаются только две младшие цифры. Если первая цифра двузначного года начинается с нуля (например, 2008), то число форматируется без нуля в начале.

Если описатель формата "y" используется без других настраиваемых описателей формата, то он интерпретируется как описатель "y" стандартного формата даты и времени. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере настраиваемый описатель формата "y" используется в строке настраиваемого формата.

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      
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      

К таблице

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

Настраиваемый описатель формата "yy" представляет год в виде двузначного числа. Если год имеет более двух цифр, то в результате отображаются только две младшие цифры. Если двузначное обозначение года имеет менее двух значащих цифр, то число дополняется нулями, стоящими в начале, до двух цифр.

В следующем примере настраиваемый описатель формата "yy" используется в строке настраиваемого формата.

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      
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      

К таблице

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

Настраиваемый описатель формата "yyy" представляет год в виде как минимум трех цифр. Если в году больше трех значащих цифр, то они включаются в результат. Если значение года имеет меньше трех цифр, то число дополняется стоящими в начале нулями до трех цифр.

ПримечаниеПримечание

Для Тайского (буддистского) календаря, в котором годы могут состоять из пяти цифр, этот описатель формата отображает все значимые цифры.

В следующем примере настраиваемый описатель формата "yyy" используется в строке настраиваемого формата.

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      
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      

К таблице

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

Описатель настраиваемого формата "yyyy" представляет год в виде как минимум четырех цифр. Если в году больше четырех значащих цифр, они включаются в результирующую строку. Если в году меньше четырех цифр, число дополняется предшествующими нулями до достижения четырех цифр.

ПримечаниеПримечание

Для Тайского (буддистского) календаря, в котором годы могут состоять из пяти цифр, этот описатель формата отображает минимум четыре цифры.

В следующем примере настраиваемый описатель формата "yyyy" используется в строке настраиваемого формата.

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      
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      

К таблице

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

Описатель настраиваемого формата "yyyyy" (плюс любое число дополнительных описателей "y") представляет год в виде минимум пяти цифр. Если в году больше пяти значащих цифр, они включаются в результирующую строку. Если в году меньше пяти цифр, то число дополняется стоящими в начале нулями до пяти цифр.

Если имеются дополнительные описатели "y", то число дополняется нулями в начале до достижения указанного количества описателей "у".

В следующем примере настраиваемый описатель формата "yyyyy" используется в строке настраиваемого формата.

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      
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      

К таблице

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

Совместно со значениями DateTime настраиваемый описатель формата "z" представляет указанное со знаком смещение часового пояса локальной операционной системы от времени UTC, измеренное в часах. Описатель не отражает значение свойства DateTime.Kind экземпляра. По этой причине описатель формата "z" не рекомендуется использовать со значениями DateTime.

Для значений DateTimeOffset этот описатель формата представляет смещение значения DateTimeOffset от времени UTC в часах.

Смещение всегда отображается со знаком в начале. Плюс (+) указывает на то, что часы опережают время UTC, а минус (-) — на то, что они от него отстают. Смещение с одной цифрой форматируется без нуля в начале.

Если описатель формата "z" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени, и возникает исключение FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

В следующем примере настраиваемый описатель формата "z" используется в строке настраиваемого формата.

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
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

К таблице

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

Совместно со значениями DateTime настраиваемый описатель формата "zz" представляет указанное со знаком смещение часового пояса локальной операционной системы от времени UTC, измеренное в часах. Описатель не отражает значение свойства DateTime.Kind экземпляра. По этой причине описатель формата "zz" не рекомендуется использовать со значениями DateTime.

Для значений DateTimeOffset этот описатель формата представляет смещение значения DateTimeOffset от времени UTC в часах.

Смещение всегда отображается со знаком в начале. Плюс (+) указывает на то, что часы опережают время UTC, а минус (-) — на то, что они от него отстают. Смещение с одной цифрой форматируется c нулем в начале.

В следующем примере настраиваемый описатель формата "zz" используется в строке настраиваемого формата.

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
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

К таблице

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

Совместно со значениями DateTime настраиваемый описатель формата "zzz" представляет указанное со знаком смещение часового пояса локальной операционной системы от времени UTC, измеренное в часах и минутах. Описатель не отражает значение свойства DateTime.Kind экземпляра. По этой причине описатель формата "zzz" не рекомендуется использовать со значениями DateTime.

Для значений DateTimeOffset этот описатель формата представляет смещение значения DateTimeOffset от времени UTC в часах и минутах.

Смещение всегда отображается со знаком в начале. Плюс (+) указывает на то, что часы опережают время UTC, а минус (-) — на то, что они от него отстают. Смещение с одной цифрой форматируется c нулем в начале.

В следующем примере настраиваемый описатель формата "zzz" используется в строке настраиваемого формата.

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
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

К таблице

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

Настраиваемый описатель формата ":" представляет разделитель компонентов времени, который используется для разделения часов, минут и секунд. Соответствующий локализованный разделитель компонентов времени извлекается из свойства DateTimeFormatInfo.TimeSeparator текущей или заданной среды языка и региональных параметров.

Если описатель формата ":" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени, и возникает исключение FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

К таблице

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

Настраиваемый описатель формата "/" представляет разделитель компонентов даты, который используется для разделения года, месяца и дня. Соответствующий локализованный разделитель компонентов даты извлекается из свойства DateTimeFormatInfo.DateSeparator текущей или заданной среды языка и региональных параметров.

Если описатель формата "/" используется без других настраиваемых описателей формата, то он интерпретируется как описатель стандартного формата даты и времени и возникает исключение FormatException. Дополнительные сведения об использовании единичных описателей форматов см. в подразделе Использование единичных настраиваемых описателей форматов ниже.

К таблице

Примечания

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

Строка настраиваемого формата даты и времени состоит из двух или более знаков. Методы форматирования даты и времени интерпретируют любую односимвольную строку как строку стандартного формата даты и времени. Если они не распознают этот символ как допустимый описатель формата, возникает исключение FormatException. Например, строка формата, состоящая только из описателя "h", интерпретируется как строка стандартного формата даты и времени. Однако в данном случае будет возникнет исключение, поскольку в описателе стандартного формата даты и времени "h" отсутствует пробелы ( ).

Чтобы использовать какой-либо настраиваемый описатель формата даты и времени в качестве единственного описателя в строке формата (т. е. использовать единственный настраиваемый описатель формата "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" или "/"), следует включить пробел до или после описателя или указать описатель формата "%" (процент) перед единственным настраиваемым описателем формата даты и времени.

Например, "%h" интерпретируется как строка настраиваемого формата даты и времени, которая отображает час, представленный текущим значением даты и времени. Можно также использовать строки формата " h" или "h ", хотя в этом случае в результирующей строке час будет указан с пробелом. В следующем примере демонстрируется использование этих трех строк формата.

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 '
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 '

Использование escape-символа

Символы "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" и "/" в строке формата интерпретируются как настраиваемые описатели формата, а не как литералы. Чтобы такие символы не обрабатывались как описатели формата, можно указывать перед ними обратную косую черту (\), называемую также escape-символом. Наличие escape-символа означает, что следующий за ним символ является литералом, который следует перенести в результирующую строку без изменений.

Чтобы включить в результирующую строку обратную косую черту, перед ней нужно поставить дополнительную обратную косую черту (\\).

ПримечаниеПримечание

Кроме того, в некоторых компиляторах, например компиляторах C++ и C#, одиночная обратная косая черта также может восприниматься как escape-символ.Чтобы гарантировать, что строка будет правильно воспринята при форматировании, можно поставить символ буквального строкового литерала (символ "@") перед строкой в C# или добавить дополнительный символ обратной косой черты перед каждой обратной косой чертой в C# и C++.В следующем примере кода на языке C# демонстрируются оба подхода.

В следующем примере с помощью escape-символа предотвращается интерпретация операцией форматирования символов "h" и "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      
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      

Настройки панели управления

Параметры в разделе Язык и региональные стандарты панели управления влияют на результирующую строку, которая создается операцией форматирования, использующей большое число настраиваемых описателей формата даты и времени. Эти параметры используются для инициализации объекта DateTimeFormatInfo, связанного с текущими региональными параметрами потока, который предоставляет значения, используемые для управления форматированием. Результирующие строки будут различаться на компьютерах с разными параметрами.

Кроме того, если конструктор CultureInfo.CultureInfo(String) используется для создания нового экземпляра объекта CultureInfo, представляющего язык и региональные параметры, аналогичные текущему языку и региональным параметрам системы, то все настройки, заданные в разделе Язык и региональные стандарты панели управления, будут применяться к новому объекту CultureInfo. Можно воспользоваться конструктором CultureInfo.CultureInfo(String, Boolean) для создания объекта CultureInfo, который не отражает настройки системы.

Свойства DateTimeFormatInfo

На форматирование влияют свойства текущего объекта DateTimeFormatInfo, которые задаются либо неявно, языком и региональными параметрами текущего потока, либо явно, параметром IFormatProvider метода, который вызывает форматирование. Для параметра IFormatProvider необходимо указать объект CultureInfo, представляющий язык и региональные параметры, или объект DateTimeFormatInfo.

Результирующая строка, формируемая многими настраиваемыми описателями формата даты и времени, также зависит от свойств текущего объекта DateTimeFormatInfo. Приложение может изменить результат использования некоторых описателей настраиваемых форматов даты и времени, изменив соответствующее свойство DateTimeFormatInfo. Например, описатель формата "ddd" добавляет в результирующую строку сокращенное название дня недели, найденное в массиве строк AbbreviatedDayNames. Аналогичным образом описатель формата "MMMM" добавляет в результирующую строку полное название месяца, найденное в массиве строк MonthNames.

См. также

Ссылки

System.DateTime

System.IFormatProvider

Основные понятия

Типы форматирования

Строки стандартных форматов даты и времени

Журнал изменений

Дата

Журнал

Причина

Март 2011

Добавлена ссылка на программу Format Utility.

Улучшение информации.

Июль 2010

Добавлена информация об использовании пользовательских строк формата в операциях форматирования и синтаксического анализа.

Обратная связь от клиента.