Поделиться через


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

Стандартная строка формата даты и времени использует один символ в качестве описателя формата для определения текстового DateTimeпредставления значения , DateTimeOffsetDateOnlyили TimeOnly значения. Любая строка формата даты и времени, содержащая несколько символов, включая пробелы, интерпретируется как настраиваемая строка формата даты и времени. Стандартная или настраиваемая строка форматирования может использоваться двумя способами:

  • Определение строки, которая приводит к выполнению операции форматирования.

  • Определение текстового представления значения даты и времени, которое можно преобразовать в DateTime, DateTimeOffsetDateOnlyили TimeOnly значение операцией синтаксического анализа.

Подсказка

Вы можете скачать служебную программу форматирования, приложение .NET Windows Forms, которое позволяет применять строки форматирования к числовым или значениям даты и времени и отображать строку результата. Исходный код доступен для C# и Visual Basic.

Замечание

Некоторые примеры C# в этой статье выполняются в Try.NET встроенном средстве выполнения кода и на игровой площадке. Нажмите кнопку "Выполнить ", чтобы запустить пример в интерактивном окне. После выполнения кода его можно изменить и запустить измененный код, нажав кнопку "Выполнить снова". Измененный код выполняется в интерактивном окне или, если компиляция завершается ошибкой, в интерактивном окне отображаются все сообщения об ошибках компилятора C#.

Локальный часовой поясTry.NET встроенного запуска кода и игровой площадки является координируемым универсальным временем или UTC. Это может повлиять на поведение и выходные данные примеров, которые иллюстрируют DateTimeDateTimeOffsetи типы и TimeZoneInfo их члены.

Таблица описателей формата

В следующей таблице описаны стандартные описатели формата даты и времени. Если не указано иное, определенный стандартный описатель формата даты и времени создает идентичное строковое представление независимо от того, используется ли он со DateTime значением или значением DateTimeOffset . Не все описатели формата можно использовать с DateOnly и TimeOnly значениями. Дополнительные сведения см. в разделе DateOnly и TimeOnly formatting. Сведения о том, как региональные параметры в Windows и текущем DateTimeFormatInfo объекте могут повлиять на форматирование даты и времени, см. в разделе "Параметры панели управления " и "Свойства DateTimeFormatInfo".

Описатель формата Description Примеры
"d" Шаблон короткой даты.

Дополнительные сведения:Описатель формата короткой даты (d).
2009-06-15T13:45:30 -> 6/15/2009 (en-US)

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

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

DateOnly (2009-06-15) -> 6/15/2009 (en-US)
"D" Шаблон длинной даты.

Дополнительные сведения:Описатель формата длинной даты (D).
2009-06-15T13:45:30 -> понедельник, 15 июня 2009 г. (en-US)

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

2009-06-15T13:45:30 -> Монтаг, 15. Juni 2009 (de-DE)
"f" Полный шаблон даты и времени (короткое время).

Дополнительные сведения: описатель формата полной даты (f).
2009-06-15T13:45:30 -> понедельник, 15 июня 2009 1:45 (en-US)

2009-06-15T13:45:30 -> den 15 juni 2009 13:45 (sv-SE)

2009-06-15T13:45:30 -> Ππέα, 15 009 2009 1:45 μμ (el-GR)
"F" Полный шаблон даты и времени (долгое время).

Дополнительные сведения: описатель формата полной даты (F).
2009-06-15T13:45:30 -> понедельник, 15 июня 2009 г. 1:45:30 (en-US)

2009-06-15T13:45:30 -> den 15 juni 2009 13:45:30 (sv-SE)

2009-06-15T13:45:30 -> Ππέαα, 15 Παπ 2009 1:45:30 μμ (el-GR)
"g" Общий шаблон даты и времени (короткое время).

Дополнительные сведения: общий описатель формата даты ("g").
2009-06-15T13:45:30 -> 6/15/2009 1:45 (en-US)

2009-06-15T13:45:30 -> 15/06/2009 13:45 (es-ES)

2009-06-15T13:45:30 -> 2009/6/15 13:45 (zh-CN)
"G" Общий шаблон даты и времени (долгое время).

Дополнительные сведения: общий описатель формата даты ("G").
2009-06-15T13:45:30 -> 6/15/2009 1:45:30 (en-US)

2009-06-15T13:45:30 -> 15/06/2009 13:45:30 (es-ES)

2009-06-15T13:45:30 -> 2009/6/15 13:45:30 (zh-CN)
"M", "m" Шаблон месяца и дня.

Дополнительные сведения: описатель формата "M", "m").
2009-06-15T13:45:30 -> 15 июня (en-US)

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

2009-06-15T13:45:30 -> 15 Juni (id-ID)
"O", "o" Шаблон даты и времени кругового пути.

Дополнительные сведения: описатель формата "O", "o").
DateTime Значения:

2009-06-15T13:45:30 (DateTimeKind.Local) --> 2009-06-15T13:45:30.00000000-07:000

2009-06-15T13:45:30 (DateTimeKind.UTC) --> 2009-06-15T13:45:30.000000Z

2009-06-15T13:45:30 (DateTimeKind.Unspecified) --> 2009-06-15T13:45:30.0000000

DateTimeOffset Значения:

2009-06-15T13:45:30-07:00 --> 2009-06-15T13:45:30.0000000-07:000

DateOnly Значения:

2009-06-15 --> 2009-06-15

TimeOnly Значения:

13:45:30 --> 13:45:30.00000000
"R", "r" шаблон RFC1123.

Дополнительные сведения: описатель формата RFC1123 ("R", "r").
DateTimeOffset input: 2009-06-15T13:45:30 -> Mon, 15 июня 2009 20:45:30 GMT
DateTime input: 2009-06-15T13:45:30 -> Mon, 15 июня 2009 13:45:30 GMT
"s" Шаблон сортировки даты и времени.

Дополнительные сведения: описатель формата сортировки ("s").
2009-06-15T13:45:30 (DateTimeKind.Local) -> 2009-06-15T13:45:30

2009-06-15T13:45:30 (DateTimeKind.UTC) -> 2009-06-15T13:45:30
"t" Короткий шаблон времени.

Дополнительные сведения: описатель формата "t") в коротком времени.
2009-06-15T13:45:30 -> 1:45 PM (en-US)

2009-06-15T13:45:30 -> 13:45 (hr-HR)

2009-06-15T13:45:30 -> 01:45 Sql (ar-EG)

TimeOnly (13:45:30) -> 1:45 вечера (en-US)
"T" Длинный шаблон времени.

Дополнительные сведения: описатель формата длительного времени (T).
2009-06-15T13:45:30 -> 1:45:30 (en-US)

2009-06-15T13:45:30 -> 13:45:30 (hr-HR)

2009-06-15T13:45:30 -> 01:45:30 sql (ar-EG)

TimeOnly (13:45:30) -> 1:45:30 (en-US)
"u" Шаблон универсальной сортировки даты и времени.

Дополнительные сведения: описатель универсального формата сортировки (u).
DateTime Значение: 2009-06-15T13:45:30 -> 2009-06-15 13:45:30Z

Со значением DateTimeOffset : 2009-06-15T13:45:30 -> 2009-06-15 20:45:30Z
"U" Универсальный шаблон даты и времени.

Дополнительные сведения: описатель универсального полного формата (U).
2009-06-15T13:45:30 -> понедельник, 15 июня 2009 г. 8:45:30 (en-US)

2009-06-15T13:45:30 -> den 15 juni 2009 20:45:30 (sv-SE)

2009-06-15T13:45:30 -> Πππέαα, 15 Παπ 2009 8:45:30 μμ (el-GR)
"Y", "y" Шаблон месяца года.

Дополнительные сведения: описатель формата года ("Y") .
2009-06-15T13:45:30 -> Июнь 2009 (en-US)

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

2009-06-15T13:45:30 -> Juni 2009 (id-ID)
Любой другой один символ Неизвестный описатель. Создает время FormatExceptionвыполнения.

Как работают строки стандартного формата

В операции форматирования строка стандартного формата — это просто псевдоним для настраиваемой строки форматирования. Преимущество использования псевдонима для ссылки на строку настраиваемого формата заключается в том, что, хотя псевдоним остается инвариантным, сама строка настраиваемого формата может отличаться. Это важно, так как строковые представления значений даты и времени обычно зависят от языка и региональных параметров. Например, строка стандартного формата "d" указывает, что значение даты и времени должно отображаться с помощью короткого шаблона даты. Для инвариантного языка и региональных параметров этот шаблон — MM/dd/гггг. Для языка и региональных параметров fr-FR это "dd/MM/гггг". Для ja-JP языка и региональных параметров это "гггг/ММ/дд".

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

  • Вы можете использовать язык и региональные параметры по умолчанию (или текущие). В следующем примере отображается дата с использованием короткого формата даты и региональных параметров. В этом случае текущий язык и региональные параметры en-US.

    // Display using current (en-us) culture's short date format
    DateTime thisDate = new DateTime(2008, 3, 15);
    Console.WriteLine(thisDate.ToString("d"));           // Displays 3/15/2008
    
    ' Display using current (en-us) culture's short date format
    Dim thisDate As Date = #03/15/2008#
    Console.WriteLine(thisDate.ToString("d"))     ' Displays 3/15/2008
    
  • Можно передать объект, представляющий язык и региональные CultureInfo параметры, форматирование которых должно использоваться для метода с параметром IFormatProvider . В следующем примере отображается дата с использованием короткого формата даты языка и региональных параметров pt-BR.

    // Display using pt-BR culture's short date format
    DateTime thisDate = new DateTime(2008, 3, 15);
    CultureInfo culture = new CultureInfo("pt-BR");
    Console.WriteLine(thisDate.ToString("d", culture));  // Displays 15/3/2008
    
    ' Display using pt-BR culture's short date format
    Dim thisDate As Date = #03/15/2008#
    Dim culture As New CultureInfo("pt-BR")
    Console.WriteLine(thisDate.ToString("d", culture))   ' Displays 15/3/2008
    
  • Объект, предоставляющий сведения о форматировании, можно передать DateTimeFormatInfo методу с параметром IFormatProvider . В следующем примере отображается дата с использованием формата короткой DateTimeFormatInfo даты из объекта для языка и региональных параметров hr-HR.

    // Display using date format information from hr-HR culture
    DateTime thisDate = new DateTime(2008, 3, 15);
    DateTimeFormatInfo fmt = (new CultureInfo("hr-HR")).DateTimeFormat;
    Console.WriteLine(thisDate.ToString("d", fmt));      // Displays 15.3.2008
    
    ' Display using date format information from hr-HR culture
    Dim thisDate As Date = #03/15/2008#
    Dim fmt As DateTimeFormatInfo = (New CultureInfo("hr-HR")).DateTimeFormat
    Console.WriteLine(thisDate.ToString("d", fmt))   ' Displays 15.3.2008
    

Замечание

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

В некоторых случаях строка стандартного формата служит удобной аббревиатурой для более длинной пользовательской строки форматирования, которая является инвариантной. Четыре стандартных строки формата делятся на эту категорию: "O" (или "o"), "R" (или "r"), "s" и "u". Эти строки соответствуют строкам пользовательского формата, определенным инвариантным языком и региональными параметрами. Они создают строковые представления значений даты и времени, которые должны быть идентичными для разных языков и региональных параметров. В следующей таблице приведены сведения об этих четырех стандартных строках формата даты и времени.

Строка стандартного формата Определяется свойством DateTimeFormatInfo.InvariantInfo Строка настраиваемого формата
"O" или "o" None гггг'-'ММ'-dd'T'HH':'mm'ss'. fffffffK
"R" или "r" RFC1123Pattern ddd, dd MMM yyyy HH':'mm'ss 'GMT'
"s" SortableDateTimePattern гггг'-'ММ'-dd'T'HH':'mm'ss
"u" UniversalSortableDateTimePattern гггг'-'ММ'-дд HH':'mm'ss'Z'

Строки стандартного формата также можно использовать в операциях синтаксического анализа с DateTime.ParseExactпомощью методов , DateTimeOffset.ParseExactDateOnly.ParseExactи TimeOnly.ParseExact методов, которые требуют, чтобы входная строка точно соответствовала определенному шаблону для успешной операции синтаксического анализа. Многие строки стандартного формата сопоставляются с несколькими настраиваемыми строками форматирования, поэтому значение даты и времени может быть представлено в различных форматах, и операция синтаксического анализа по-прежнему будет выполнена успешно. Можно определить строку пользовательского формата или строки, соответствующие стандартной строке формата, вызвав DateTimeFormatInfo.GetAllDateTimePatterns(Char) метод. В следующем примере отображаются строки пользовательского формата, сопоставленные со строкой стандартного формата "d" (шаблон короткой даты).

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      Console.WriteLine("'d' standard format string:");
      foreach (var customString in DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns('d'))
          Console.WriteLine($"   {customString}");
   }
}
// The example displays the following output:
//       'd' standard format string:
//          M/d/yyyy
//          M/d/yy
//          MM/dd/yy
//          MM/dd/yyyy
//          yy/MM/dd
//          yyyy-MM-dd
//          dd-MMM-yy
Imports System.Globalization

Module Example
    Public Sub Main()
        Console.WriteLine("'d' standard format string:")
        For Each customString In DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns("d"c)
            Console.WriteLine("   {0}", customString)
        Next
    End Sub
End Module
' The example displays the following output:
'    'd' standard format string:
'       M/d/yyyy
'       M/d/yy
'       MM/dd/yy
'       MM/dd/yyyy
'       yy/MM/dd
'       yyyy-MM-dd
'       dd-MMM-yy

В следующих разделах описаны стандартные описатели формата для DateTime, DateTimeOffsetи TimeOnlyDateOnlyзначений.

Форматы дат

Эта группа включает следующие форматы:

Описатель формата short date (d)

Описатель стандартного формата "d" представляет настраиваемую строку формата даты и времени, определяемую свойством определенного языка и региональных DateTimeFormatInfo.ShortDatePattern параметров. Например, строка настраиваемого формата, возвращаемая свойством ShortDatePattern инвариантного языка и региональных параметров, — MM/dd/гггг.

В следующей таблице перечислены DateTimeFormatInfo свойства объекта, которые управляют форматированием возвращаемой строки.

Недвижимость Description
ShortDatePattern Определяет общий формат строки результата.
DateSeparator Определяет строку, разделяющую компоненты даты года, месяца и дня.

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

DateTime date1 = new DateTime(2008,4, 10);
Console.WriteLine(date1.ToString("d", DateTimeFormatInfo.InvariantInfo));
// Displays 04/10/2008
Console.WriteLine(date1.ToString("d",
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays 4/10/2008
Console.WriteLine(date1.ToString("d",
                  CultureInfo.CreateSpecificCulture("en-NZ")));
// Displays 10/04/2008
Console.WriteLine(date1.ToString("d",
                  CultureInfo.CreateSpecificCulture("de-DE")));
// Displays 10.04.2008
Dim date1 As Date = #4/10/2008#
Console.WriteLine(date1.ToString("d", DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008
Console.WriteLine(date1.ToString("d", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays 4/10/2008                       
Console.WriteLine(date1.ToString("d", _
                  CultureInfo.CreateSpecificCulture("en-NZ")))
' Displays 10/04/2008                       
Console.WriteLine(date1.ToString("d", _
                  CultureInfo.CreateSpecificCulture("de-DE")))
' Displays 10.04.2008                       

Назад в таблицу

Описатель формата длинной даты (D)

Описатель стандартного формата D представляет настраиваемую строку формата даты и времени, определяемую текущим DateTimeFormatInfo.LongDatePattern свойством. Например, строка настраиваемого формата для инвариантного языка и региональных параметров — "dddd, dd MMMM гггг".

В следующей таблице перечислены свойства DateTimeFormatInfo объекта, который управляет форматированием возвращаемой строки.

Недвижимость Description
LongDatePattern Определяет общий формат строки результата.
DayNames Определяет локализованные имена дней, которые могут отображаться в результирующей строке.
MonthNames Определяет локализованные имена месяцев, которые могут отображаться в результирующей строке.

В следующем примере для отображения значения даты и времени используется описатель формата "D".

DateTime date1 = new DateTime(2008, 4, 10);
Console.WriteLine(date1.ToString("D",
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008
Console.WriteLine(date1.ToString("D",
                  CultureInfo.CreateSpecificCulture("pt-BR")));
// Displays quinta-feira, 10 de abril de 2008
Console.WriteLine(date1.ToString("D",
                  CultureInfo.CreateSpecificCulture("es-MX")));
// Displays jueves, 10 de abril de 2008
Dim date1 As Date = #4/10/2008#
Console.WriteLine(date1.ToString("D", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008                        
Console.WriteLine(date1.ToString("D", _
                  CultureInfo.CreateSpecificCulture("pt-BR")))
' Displays quinta-feira, 10 de abril de 2008                        
Console.WriteLine(date1.ToString("D", _
                  CultureInfo.CreateSpecificCulture("es-MX")))
' Displays jueves, 10 de abril de 2008                        

Назад в таблицу

Форматы даты и времени

Эта группа включает следующие форматы:

Описатель формата полной даты ("f")

Описатель стандартного формата "f" представляет сочетание шаблонов длинной даты (D) и коротких шаблонов времени (t), разделенных пробелом.

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

Недвижимость Description
LongDatePattern Определяет формат компонента даты строки результата.
ShortTimePattern Определяет формат компонента времени результирующих строк.
DayNames Определяет локализованные имена дней, которые могут отображаться в результирующей строке.
MonthNames Определяет локализованные имена месяцев, которые могут отображаться в результирующей строке.
TimeSeparator Определяет строку, разделяющую час, минуту и второй компоненты времени.
AMDesignator Определяет строку, указывающую время от полуночи до полудня в 12-часовом часовом режиме.
PMDesignator Определяет строку, указывающую время от полудня до полуночи в 12 часов.

В следующем примере используется описатель формата f для отображения значения даты и времени.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("f",
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008 6:30 AM
Console.WriteLine(date1.ToString("f",
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays jeudi 10 avril 2008 06:30
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("f", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 6:30 AM                        
Console.WriteLine(date1.ToString("f", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays jeudi 10 avril 2008 06:30                       

Назад в таблицу

Описатель полного формата даты ("F")

Описатель стандартного формата "F" представляет настраиваемую строку формата даты и времени, определяемую текущим DateTimeFormatInfo.FullDateTimePattern свойством. Например, строка настраиваемого формата для инвариантного языка и региональных параметров имеет значение "dddd, dd MMMM yyyy HH:mm:ss".

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

Недвижимость Description
FullDateTimePattern Определяет общий формат строки результата.
DayNames Определяет локализованные имена дней, которые могут отображаться в результирующей строке.
MonthNames Определяет локализованные имена месяцев, которые могут отображаться в результирующей строке.
TimeSeparator Определяет строку, разделяющую час, минуту и второй компоненты времени.
AMDesignator Определяет строку, указывающую время от полуночи до полудня в 12-часовом часовом режиме.
PMDesignator Определяет строку, указывающую время от полудня до полуночи в 12 часов.

В следующем примере для отображения значения даты и времени используется описатель формата F.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("F",
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008 6:30:00 AM
Console.WriteLine(date1.ToString("F",
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays jeudi 10 avril 2008 06:30:00
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("F", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 6:30:00 AM                        
Console.WriteLine(date1.ToString("F", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays jeudi 10 avril 2008 06:30:00                       

Назад в таблицу

Общий описатель формата даты ("g")

Описатель стандартного формата "g" представляет сочетание шаблонов короткой даты ("d") и короткого времени (t), разделенных пробелом.

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

Недвижимость Description
ShortDatePattern Определяет формат компонента даты строки результата.
ShortTimePattern Определяет формат компонента времени результирующих строк.
DateSeparator Определяет строку, разделяющую компоненты даты года, месяца и дня.
TimeSeparator Определяет строку, разделяющую час, минуту и второй компоненты времени.
AMDesignator Определяет строку, указывающую время от полуночи до полудня в 12-часовом часовом режиме.
PMDesignator Определяет строку, указывающую время от полудня до полуночи в 12 часов.

В следующем примере используется описатель формата g для отображения значения даты и времени.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("g",
                  DateTimeFormatInfo.InvariantInfo));
// Displays 04/10/2008 06:30
Console.WriteLine(date1.ToString("g",
                  CultureInfo.CreateSpecificCulture("en-us")));
// Displays 4/10/2008 6:30 AM
Console.WriteLine(date1.ToString("g",
                  CultureInfo.CreateSpecificCulture("fr-BE")));
// Displays 10/04/2008 6:30
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("g", _
                  DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008 06:30                      
Console.WriteLine(date1.ToString("g", _
                  CultureInfo.CreateSpecificCulture("en-us")))
' Displays 4/10/2008 6:30 AM                       
Console.WriteLine(date1.ToString("g", _
                  CultureInfo.CreateSpecificCulture("fr-BE")))
' Displays 10/04/2008 6:30                        

Назад в таблицу

Общий описатель формата даты ("G")

Описатель стандартного формата G представляет сочетание коротких шаблонов даты (d) и длительного времени (T), разделенных пробелом.

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

Недвижимость Description
ShortDatePattern Определяет формат компонента даты строки результата.
LongTimePattern Определяет формат компонента времени результирующих строк.
DateSeparator Определяет строку, разделяющую компоненты даты года, месяца и дня.
TimeSeparator Определяет строку, разделяющую час, минуту и второй компоненты времени.
AMDesignator Определяет строку, указывающую время от полуночи до полудня в 12-часовом часовом режиме.
PMDesignator Определяет строку, указывающую время от полудня до полуночи в 12 часов.

В следующем примере используется описатель формата G для отображения значения даты и времени.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("G",
                  DateTimeFormatInfo.InvariantInfo));
// Displays 04/10/2008 06:30:00
Console.WriteLine(date1.ToString("G",
                  CultureInfo.CreateSpecificCulture("en-us")));
// Displays 4/10/2008 6:30:00 AM
Console.WriteLine(date1.ToString("G",
                  CultureInfo.CreateSpecificCulture("nl-BE")));
// Displays 10/04/2008 6:30:00
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("G", _
                  DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008 06:30:00
Console.WriteLine(date1.ToString("G", _
                  CultureInfo.CreateSpecificCulture("en-us")))
' Displays 4/10/2008 6:30:00 AM                        
Console.WriteLine(date1.ToString("G", _
                  CultureInfo.CreateSpecificCulture("nl-BE")))
' Displays 10/04/2008 6:30:00                       

Назад в таблицу

Описатель формата "O", "o")

Описатель стандартного формата "O" или "o" представляет настраиваемую строку формата даты и времени, используя шаблон, который сохраняет сведения часового пояса и выдает строку результатов, соответствующую ISO 8601. Для DateTime значений этот описатель формата предназначен для сохранения значений даты и времени вместе со свойством в тексте DateTime.Kind . Форматированная строка может быть проанализирована с помощью DateTime.Parse(String, IFormatProvider, DateTimeStyles) метода или DateTime.ParseExact метода, если styles для параметра задано значение DateTimeStyles.RoundtripKind.

Для DateOnly значений этот описатель формата создает строку только для даты ISO 8601 в формате y-MM-dd. Для TimeOnly значений она создает строку ISO 8601 только во времени в формате HH:mm:ss.fffffff.

Описатель стандартного формата "O" или "o" соответствует "гггг'-мм'-дд'T'HH':'mm'ss". Строка настраиваемого формата fffffffK для DateTime значений и в строку "гггг'-'ММ'-'dd'T'HH':'mm'ss'. fffffffzzz " настраиваемая строка форматирования для DateTimeOffset значений. В этой строке пары отдельных кавычки, разделяющие отдельные символы, такие как дефисы, двоеточия и буква "T", указывают, что отдельный символ является литеральным, который нельзя изменить. Апострофы не отображаются в выходной строке.

Описатель стандартного формата "O" или "o" (и "гггг'-мм'-'dd'T'HH':'mm'ss'". Строка настраиваемого формата fffffffK) использует три способа, которыми представляется информация часового пояса ISO 8601 для сохранения Kind свойства значений DateTime :

  • Компонент часового пояса значений DateTimeKind.Local даты и времени — смещение от UTC (например, +01:00, -07:00). Все DateTimeOffset значения также представлены в этом формате.

  • Компонент часового пояса значений DateTimeKind.Utc даты и времени использует "Z" (который обозначает нулевое смещение) для представления UTC.

  • DateTimeKind.Unspecified Значения даты и времени не содержат сведений о часовом поясе.

Так как описатель стандартного формата "O" или "o" соответствует международному стандарту, операция форматирования или синтаксического анализа, использующая описатель, всегда использует инвариантный язык и региональные параметры и григорианский календарь.

Строки, передаваемые ParseTryParseв методы , ParseExactи методы DateTime, DateTimeOffsetDateOnlyи TryParseExactTimeOnly могут анализироваться с помощью описателя формата "O" или "o", если они находятся в одном из этих форматов. В случае объектов вызываемая перегрузка DateTime синтаксического анализа также должна включать styles параметр со значением DateTimeStyles.RoundtripKind. Обратите внимание, что при вызове метода синтаксического анализа с пользовательской строкой формата, соответствующей описателям формата "O" или "o", вы не получите те же результаты, что и "O" или "o". Это связано с тем, что методы синтаксического анализа, использующие настраиваемую строку форматирования, не могут анализировать строковое представление значений даты и времени, которые не имеют компонента часового пояса или используют "Z", чтобы указать UTC.

В следующем примере используется описатель формата O для отображения ряда значений DateTime и DateTimeOffset значения в системе в часовом поясе США в тихоокеанском часовом поясе США.

using System;

public class Example
{
   public static void Main()
   {
       DateTime dat = new DateTime(2009, 6, 15, 13, 45, 30,
                                   DateTimeKind.Unspecified);
       Console.WriteLine($"{dat} ({dat.Kind}) --> {dat:O}");

       DateTime uDat = new DateTime(2009, 6, 15, 13, 45, 30,
                                    DateTimeKind.Utc);
       Console.WriteLine($"{uDat} ({uDat.Kind}) --> {uDat:O}");

       DateTime lDat = new DateTime(2009, 6, 15, 13, 45, 30,
                                    DateTimeKind.Local);
       Console.WriteLine($"{lDat} ({lDat.Kind}) --> {lDat:O}\n");

       DateTimeOffset dto = new DateTimeOffset(lDat);
       Console.WriteLine($"{dto} --> {dto:O}");
   }
}
// The example displays the following output:
//    6/15/2009 1:45:30 PM (Unspecified) --> 2009-06-15T13:45:30.0000000
//    6/15/2009 1:45:30 PM (Utc) --> 2009-06-15T13:45:30.0000000Z
//    6/15/2009 1:45:30 PM (Local) --> 2009-06-15T13:45:30.0000000-07:00
//
//    6/15/2009 1:45:30 PM -07:00 --> 2009-06-15T13:45:30.0000000-07:00
Module Example
    Public Sub Main()
        Dim dat As New Date(2009, 6, 15, 13, 45, 30,
                            DateTimeKind.Unspecified)
        Console.WriteLine("{0} ({1}) --> {0:O}", dat, dat.Kind)

        Dim uDat As New Date(2009, 6, 15, 13, 45, 30, DateTimeKind.Utc)
        Console.WriteLine("{0} ({1}) --> {0:O}", uDat, uDat.Kind)

        Dim lDat As New Date(2009, 6, 15, 13, 45, 30, DateTimeKind.Local)
        Console.WriteLine("{0} ({1}) --> {0:O}", lDat, lDat.Kind)
        Console.WriteLine()

        Dim dto As New DateTimeOffset(lDat)
        Console.WriteLine("{0} --> {0:O}", dto)
    End Sub
End Module
' The example displays the following output:
'    6/15/2009 1:45:30 PM (Unspecified) --> 2009-06-15T13:45:30.0000000
'    6/15/2009 1:45:30 PM (Utc) --> 2009-06-15T13:45:30.0000000Z
'    6/15/2009 1:45:30 PM (Local) --> 2009-06-15T13:45:30.0000000-07:00
'    
'    6/15/2009 1:45:30 PM -07:00 --> 2009-06-15T13:45:30.0000000-07:00

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

// Round-trip DateTime values.
DateTime originalDate, newDate;
string dateString;
// Round-trip a local time.
originalDate = DateTime.SpecifyKind(new DateTime(2008, 4, 10, 6, 30, 0), DateTimeKind.Local);
dateString = originalDate.ToString("o");
newDate = DateTime.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine($"Round-tripped {originalDate} {originalDate.Kind} to {newDate} {newDate.Kind}.");
// Round-trip a UTC time.
originalDate = DateTime.SpecifyKind(new DateTime(2008, 4, 12, 9, 30, 0), DateTimeKind.Utc);
dateString = originalDate.ToString("o");
newDate = DateTime.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine($"Round-tripped {originalDate} {originalDate.Kind} to {newDate} {newDate.Kind}.");
// Round-trip time in an unspecified time zone.
originalDate = DateTime.SpecifyKind(new DateTime(2008, 4, 13, 12, 30, 0), DateTimeKind.Unspecified);
dateString = originalDate.ToString("o");
newDate = DateTime.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine($"Round-tripped {originalDate} {originalDate.Kind} to {newDate} {newDate.Kind}.");

// Round-trip a DateTimeOffset value.
DateTimeOffset originalDTO = new DateTimeOffset(2008, 4, 12, 9, 30, 0, new TimeSpan(-8, 0, 0));
dateString = originalDTO.ToString("o");
DateTimeOffset newDTO = DateTimeOffset.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine($"Round-tripped {originalDTO} to {newDTO}.");
// The example displays the following output:
//    Round-tripped 4/10/2008 6:30:00 AM Local to 4/10/2008 6:30:00 AM Local.
//    Round-tripped 4/12/2008 9:30:00 AM Utc to 4/12/2008 9:30:00 AM Utc.
//    Round-tripped 4/13/2008 12:30:00 PM Unspecified to 4/13/2008 12:30:00 PM Unspecified.
//    Round-tripped 4/12/2008 9:30:00 AM -08:00 to 4/12/2008 9:30:00 AM -08:00.
' Round-trip DateTime values.
Dim originalDate, newDate As Date
Dim dateString As String
' Round-trip a local time.
originalDate = Date.SpecifyKind(#4/10/2008 6:30AM#, DateTimeKind.Local)
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
                  newDate, newDate.Kind)
' Round-trip a UTC time.
originalDate = Date.SpecifyKind(#4/12/2008 9:30AM#, DateTimeKind.Utc)
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
                  newDate, newDate.Kind)
' Round-trip time in an unspecified time zone.
originalDate = Date.SpecifyKind(#4/13/2008 12:30PM#, DateTimeKind.Unspecified)
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
                  newDate, newDate.Kind)

' Round-trip a DateTimeOffset value.
Dim originalDTO As New DateTimeOffset(#4/12/2008 9:30AM#, New TimeSpan(-8, 0, 0))
dateString = originalDTO.ToString("o")
Dim newDTO As DateTimeOffset = DateTimeOffset.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} to {1}.", originalDTO, newDTO)
' The example displays the following output:
'    Round-tripped 4/10/2008 6:30:00 AM Local to 4/10/2008 6:30:00 AM Local.
'    Round-tripped 4/12/2008 9:30:00 AM Utc to 4/12/2008 9:30:00 AM Utc.
'    Round-tripped 4/13/2008 12:30:00 PM Unspecified to 4/13/2008 12:30:00 PM Unspecified.
'    Round-tripped 4/12/2008 9:30:00 AM -08:00 to 4/12/2008 9:30:00 AM -08:00.

Назад в таблицу

Описатель формата RFC1123 ("R", "r")

Описатель стандартного формата "R" или "r" представляет настраиваемую строку формата даты и времени, определяемую свойством DateTimeFormatInfo.RFC1123Pattern . Шаблон отражает определенный стандарт, а свойство доступно только для чтения. Таким образом, он всегда одинаков, независимо от используемого языка и региональных параметров или предоставленного поставщика формата. Строка настраиваемого формата — ddd, dd MMM yyyy HH':'mm'ss "GMT". Если используется этот описатель стандартного формата, операция форматирования или синтаксического анализа всегда использует инвариантный язык и региональные параметры.

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

Недвижимость Description
RFC1123Pattern Определяет формат строки результата.
AbbreviatedDayNames Определяет сокращенные имена дней, которые могут отображаться в результирующей строке.
AbbreviatedMonthNames Определяет сокращенные имена месяцев, которые могут отображаться в результирующей строке.

Хотя стандарт RFC 1123 выражает время в формате UTC, операция форматирования не изменяет значение DateTime отформатированного объекта. Поэтому перед выполнением операции форматирования необходимо преобразовать DateTime значение в формате UTC, вызвав DateTime.ToUniversalTime метод. Напротив, DateTimeOffset значения выполняют это преобразование автоматически. Перед операцией форматирования не нужно вызывать DateTimeOffset.ToUniversalTime метод.

В следующем примере используется описатель формата R для отображения DateTime значения и DateTimeOffset значения в системе в часовом поясе США.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
DateTimeOffset dateOffset = new DateTimeOffset(date1,
                            TimeZoneInfo.Local.GetUtcOffset(date1));
Console.WriteLine(date1.ToUniversalTime().ToString("r"));
// Displays Thu, 10 Apr 2008 13:30:00 GMT
Console.WriteLine(dateOffset.ToUniversalTime().ToString("r"));
// Displays Thu, 10 Apr 2008 13:30:00 GMT
Dim date1 As Date = #4/10/2008 6:30AM#
Dim dateOffset As New DateTimeOffset(date1, TimeZoneInfo.Local.GetUtcOFfset(date1))
Console.WriteLine(date1.ToUniversalTime.ToString("r"))
' Displays Thu, 10 Apr 2008 13:30:00 GMT                       
Console.WriteLine(dateOffset.ToUniversalTime.ToString("r"))
' Displays Thu, 10 Apr 2008 13:30:00 GMT                        

Назад в таблицу

Описатель формата с сортировкой ("s")

Описатель стандартного формата "s" представляет настраиваемую строку формата даты и времени, определяемую свойством DateTimeFormatInfo.SortableDateTimePattern . Шаблон отражает определенный стандарт (ISO 8601), а свойство доступно только для чтения. Таким образом, он всегда одинаков, независимо от используемого языка и региональных параметров или предоставленного поставщика формата. Строка настраиваемого формата — yyy'-'MM'-'dd'T'HH':'mm'ss".

Назначение описателя формата "s" заключается в том, чтобы создавать строки результатов, которые последовательно сортируются по возрастанию или убыванию в зависимости от значений даты и времени. В результате, хотя описатель стандартного формата "s" представляет значение даты и времени в согласованном формате, операция форматирования не изменяет значение объекта даты и времени, отформатированного для отражения его DateTime.Kind свойства или значения.DateTimeOffset.Offset Например, строки результатов, созданные путем форматирования значений даты и времени 2014-11-15T18:32:17+00:00 и 2014-11-15T18:32:17+08:00, идентичны.

Если используется этот описатель стандартного формата, операция форматирования или синтаксического анализа всегда использует инвариантный язык и региональные параметры.

В следующем примере используется описатель формата "s" для отображения DateTime значения и DateTimeOffset значения в системе в часовом поясе США.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("s"));
// Displays 2008-04-10T06:30:00
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("s"))
' Displays 2008-04-10T06:30:00                       

Назад в таблицу

Универсальный описатель формата u

Описатель стандартного формата u представляет настраиваемую строку формата даты и времени, определяемую свойством DateTimeFormatInfo.UniversalSortableDateTimePattern . Шаблон отражает определенный стандарт, а свойство доступно только для чтения. Таким образом, он всегда одинаков, независимо от используемого языка и региональных параметров или предоставленного поставщика формата. Строка настраиваемого формата — yyy'-'MM'-dd HH':'mm'ss'Z'. Если используется этот описатель стандартного формата, операция форматирования или синтаксического анализа всегда использует инвариантный язык и региональные параметры.

Хотя результирующая строка должна выразить время в формате UTC, во время операции форматирования не выполняется преобразование исходного DateTime значения. Поэтому необходимо преобразовать DateTime значение в формате UTC, вызвав DateTime.ToUniversalTime метод перед форматированием. Напротив, DateTimeOffset значения выполняют это преобразование автоматически; перед операцией форматирования не требуется вызывать DateTimeOffset.ToUniversalTime метод.

В следующем примере для отображения значения даты и времени используется описатель формата u.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToUniversalTime().ToString("u"));
// Displays 2008-04-10 13:30:00Z
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToUniversalTime.ToString("u"))
' Displays 2008-04-10 13:30:00Z                       

Назад в таблицу

Описатель универсального полного формата (U)

Описатель стандартного формата U представляет настраиваемую строку формата даты и времени, определяемую свойством указанного языка и региональных DateTimeFormatInfo.FullDateTimePattern параметров. Шаблон совпадает с шаблоном F. DateTime Однако значение автоматически преобразуется в формате UTC перед форматированием.

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

Недвижимость Description
FullDateTimePattern Определяет общий формат строки результата.
DayNames Определяет локализованные имена дней, которые могут отображаться в результирующей строке.
MonthNames Определяет локализованные имена месяцев, которые могут отображаться в результирующей строке.
TimeSeparator Определяет строку, разделяющую час, минуту и второй компоненты времени.
AMDesignator Определяет строку, указывающую время от полуночи до полудня в 12-часовом часовом режиме.
PMDesignator Определяет строку, указывающую время от полудня до полуночи в 12 часов.

Описатель формата U не поддерживается типом DateTimeOffset и создает FormatException исключение, если оно используется для форматирования DateTimeOffset значения.

В следующем примере для отображения значения даты и времени используется описатель формата U.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("U",
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008 1:30:00 PM
Console.WriteLine(date1.ToString("U",
                  CultureInfo.CreateSpecificCulture("sv-FI")));
// Displays den 10 april 2008 13:30:00
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 1:30:00 PM                       
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("sv-FI")))
' Displays den 10 april 2008 13:30:00                       

Назад в таблицу

Форматы времени

Эта группа включает следующие форматы:

Описатель формата "t") в коротком времени

Описатель стандартного формата t представляет настраиваемую строку формата даты и времени, определяемую текущим DateTimeFormatInfo.ShortTimePattern свойством. Например, строка настраиваемого формата для инвариантного языка и региональных параметров — HH:mm.

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

Недвижимость Description
ShortTimePattern Определяет формат компонента времени результирующих строк.
TimeSeparator Определяет строку, разделяющую час, минуту и второй компоненты времени.
AMDesignator Определяет строку, указывающую время от полуночи до полудня в 12-часовом часовом режиме.
PMDesignator Определяет строку, указывающую время от полудня до полуночи в 12 часов.

В следующем примере для отображения значения даты и времени используется описатель формата T.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("t",
                  CultureInfo.CreateSpecificCulture("en-us")));
// Displays 6:30 AM
Console.WriteLine(date1.ToString("t",
                  CultureInfo.CreateSpecificCulture("es-ES")));
// Displays 6:30
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("t", _
                  CultureInfo.CreateSpecificCulture("en-us")))
' Displays 6:30 AM                        
Console.WriteLine(date1.ToString("t", _
                  CultureInfo.CreateSpecificCulture("es-ES")))
' Displays 6:30                      

Назад в таблицу

Описатель формата длительного времени (T)

Описатель стандартного формата "T" представляет настраиваемую строку формата даты и времени, определяемую свойством определенного языка и региональных DateTimeFormatInfo.LongTimePattern параметров. Например, строка настраиваемого формата для инвариантного языка и региональных параметров — HH:mm:ss.

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

Недвижимость Description
LongTimePattern Определяет формат компонента времени результирующих строк.
TimeSeparator Определяет строку, разделяющую час, минуту и второй компоненты времени.
AMDesignator Определяет строку, указывающую время от полуночи до полудня в 12-часовом часовом режиме.
PMDesignator Определяет строку, указывающую время от полудня до полуночи в 12 часов.

В следующем примере используется описатель формата "T" для отображения значения даты и времени.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("T",
                  CultureInfo.CreateSpecificCulture("en-us")));
// Displays 6:30:00 AM
Console.WriteLine(date1.ToString("T",
                  CultureInfo.CreateSpecificCulture("es-ES")));
// Displays 6:30:00
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("T", _
                  CultureInfo.CreateSpecificCulture("en-us")))
' Displays 6:30:00 AM                       
Console.WriteLine(date1.ToString("T", _
                  CultureInfo.CreateSpecificCulture("es-ES")))
' Displays 6:30:00                      

Назад в таблицу

Форматы частичной даты

Эта группа включает следующие форматы:

Описатель формата месяца ("M", "m")

Описатель стандартного формата "M" или "m" представляет настраиваемую строку формата даты и времени, определяемую текущим DateTimeFormatInfo.MonthDayPattern свойством. Например, строка настраиваемого формата для инвариантного языка и региональных параметров — MMMM dd.

В следующей таблице перечислены DateTimeFormatInfo свойства объекта, которые управляют форматированием возвращаемой строки.

Недвижимость Description
MonthDayPattern Определяет общий формат строки результата.
MonthNames Определяет локализованные имена месяцев, которые могут отображаться в результирующей строке.

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

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("m",
                  CultureInfo.CreateSpecificCulture("en-us")));
// Displays April 10
Console.WriteLine(date1.ToString("m",
                  CultureInfo.CreateSpecificCulture("ms-MY")));
// Displays 10 April
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("m", _
                  CultureInfo.CreateSpecificCulture("en-us")))
' Displays April 10                        
Console.WriteLine(date1.ToString("m", _
                  CultureInfo.CreateSpecificCulture("ms-MY")))
' Displays 10 April                       

Назад в таблицу

Описатель формата года ("Y", "y")

Описатель стандартного формата "Y" или "y" представляет настраиваемую строку формата даты и времени, определяемую DateTimeFormatInfo.YearMonthPattern свойством указанного языка и региональных параметров. Например, строка настраиваемого формата для инвариантного языка и региональных параметров — yyy MMMM.

В следующей таблице перечислены DateTimeFormatInfo свойства объекта, которые управляют форматированием возвращаемой строки.

Недвижимость Description
YearMonthPattern Определяет общий формат строки результата.
MonthNames Определяет локализованные имена месяцев, которые могут отображаться в результирующей строке.

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

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("Y",
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays April, 2008
Console.WriteLine(date1.ToString("y",
                  CultureInfo.CreateSpecificCulture("af-ZA")));
// Displays April 2008
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("Y", CultureInfo.CreateSpecificCulture("en-US")))
' Displays April, 2008                       
Console.WriteLine(date1.ToString("y", CultureInfo.CreateSpecificCulture("af-ZA")))
' Displays April 2008                       

Назад в таблицу

Форматирование DateOnly и TimeOnly

DateOnly и TimeOnly типы поддерживают подмножество стандартных строк формата даты и времени:

  • DateOnly поддерживает описатели формата, связанные с датой:

    • "d" (короткая дата), "D" (длинная дата)
    • "M" или "m" (месяц/день)
    • "Y" или "y" (год/месяц)
    • "O" или "o" (только круговая поездка, только часть даты)
    • "R" или "r" (RFC1123, только часть даты)
  • TimeOnly поддерживает описатели формата, связанные с временем:

    • "t" (короткое время), "T" (долгое время)
    • "O" или "o" (только круговая поездка, часть времени)
    • "R" или "r" (RFC1123, только часть времени)

Описатели формата, которые объединяют сведения о дате и времени (например, "f", "F", "g", "G", "s", "u", "U") создаются FormatException при использовании или DateOnlyTimeOnly.

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

В Windows параметры элемента "Региональные и языковые параметры " на панели управления влияют на строку результатов, созданную операцией форматирования. Эти параметры используются для инициализации объекта, связанного DateTimeFormatInfo с текущим языком и региональными параметрами, которые предоставляют значения, используемые для управления форматированием. Компьютеры, использующие разные параметры, создают разные строки результатов.

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

Свойства DateTimeFormatInfo

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

См. также