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

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

  • Для определения строки, являющейся результатом операции форматирования.

  • Для определения текстового представления значения даты и времени, которое можно преобразовать в значение DateTime или DateTimeOffset с помощью операции синтаксического анализа.

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

СоветСовет

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

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

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

Описание

Примеры

"d"

Короткий шаблон даты.

Дополнительные сведения: Описатель короткого формата даты ("d").

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

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

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

"D"

Полный шаблон даты.

Дополнительные сведения: Описатель полного формата даты ("D").

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

6/15/2009 1:45:30 PM -> 15 июня 2009 г. (ru-RU)

6/15/2009 1:45:30 PM -> Montag, 15. Juni 2009 (de-DE)

"f"

Полный шаблон даты и времени (короткий шаблон времени).

Дополнительные сведения: Описатель полного формата даты и краткого формата времени ("f").

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

6/15/2009 1:45:30 PM -> den 15 juni 2009 13:45 (sv-SE)

6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 1:45 μμ (el-GR)

"F"

Полный шаблон даты и времени (полный шаблон времени).

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

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

6/15/2009 1:45:30 PM -> den 15 juni 2009 13:45:30 (sv-SE)

6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 1:45:30 μμ (el-GR)

"g"

Общий шаблон даты и времени (короткий шаблон времени).

Дополнительные сведения: Описатель общего формата даты и времени ("g").

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

6/15/2009 1:45:30 PM -> 15/06/2009 13:45 (es-ES)

6/15/2009 1:45:30 PM -> 2009/6/15 13:45 (zh-CN)

"G"

Общий шаблон даты и времени (полный шаблон времени).

Дополнительные сведения: Описатель полного формата даты и времени ("G").

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

6/15/2009 1:45:30 PM -> 15/06/2009 13:45:30 (es-ES)

6/15/2009 1:45:30 PM -> 2009/6/15 13:45:30 (zh-CN)

"M", "m"

Шаблон дней месяца.

Дополнительные сведения см. в подразделе Описатель формата месяца ("M", "m").

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

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

6/15/2009 1:45:30 PM -> 15 Juni (id-ID)

"O", "o"

Шаблон обратного преобразования даты и времени.

Дополнительные сведения: Описатель формата обратного преобразования ("O", "o").

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

"R", "r"

Шаблон RFC1123.

Дополнительные сведения см. в подразделе Описатель формата RFC1123 ("R", "r").

6/15/2009 1:45:30 PM -> Mon, 15 Jun 2009 20:45:30 GMT

"s"

Сортируемый шаблон времени и даты.

Дополнительные сведения см. в подразделе Описатель сортируемого формата ("s").

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

"t"

Короткий шаблон времени.

Дополнительные сведения см. в подразделе Описатель короткого формата времени ("t").

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

6/15/2009 1:45:30 PM -> 13:45 (hr-HR)

6/15/2009 1:45:30 PM -> 01:45 م (ar-EG)

"T"

Полный шаблон времени.

Дополнительные сведения см. в подразделе Описатель полного формата времени ("T").

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

6/15/2009 1:45:30 PM -> 13:45:30 (hr-HR)

6/15/2009 1:45:30 PM -> 01:45:30 م (ar-EG)

"u"

Универсальный сортируемый шаблон времени и даты.

Дополнительные сведения см. в подразделе: Описатель универсального сортируемого формата ("u").

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

"U"

Универсальный полный шаблон даты и времени.

Дополнительные сведения см. в подразделе: Описатель универсального полного формата ("U").

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

6/15/2009 1:45:30 PM -> den 15 juni 2009 20:45:30 (sv-SE)

6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 8:45:30 μμ (el-GR)

"Y", "y"

Шаблон месяца года.

Дополнительные сведения см. в подразделе Описатель формата месяца года ("Y").

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

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

6/15/2009 1:45:30 PM -> Juni 2009 (id-ID)

Любой другой символ

Неизвестный описатель.

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

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

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

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

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

    ' 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
    
    // 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
    
  • Можно передать объект CultureInfo, представляющий язык и региональные параметры, соответствующее которым форматирование будет использоваться методом с параметром IFormatProvider. Следующий пример отображает дату в формате короткой даты, соответствующем региональным параметрам pt-BR.

    ' 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
    
    // 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
    
  • Можно передать объект DateTimeFormatInfo, предоставляющий данные форматирования методу с параметром IFormatProvider. В следующем примере дата отображается с помощью короткого формата даты из объекта DateTimeFormatInfo, соответствующего региональным параметрам hr-HR.

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

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

Строка стандартного формата

Определена свойством DateTimeFormatInfo.InvariantInfo

Строка пользовательского формата

"O" или "o"

Отсутствует

гггг'-'мм'-'дд'T'чч':'мм':'сс'.'fffffffzz

"R" или "r"

RFC1123Pattern

ддд, дд ммм гггг чч':'мм':'сс 'GMT'

"s"

SortableDateTimePattern

гггг'-'мм'-'дд'T'чч':'мм':'сс

"u"

UniversalSortableDateTimePattern

гггг'-'мм'-'дд чч':'мм':'сс'Z'

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

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
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("   {0}", 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

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

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

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

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

Свойство

Описание

ShortDatePattern

Определяет общий формат результирующей строки.

DateSeparator

Определяет строку, разделяющую компоненты даты — год, месяц и день.

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

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

К таблице

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

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

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

Свойство

Описание

LongDatePattern

Определяет общий формат результирующей строки.

DayNames

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

MonthNames

Определяет переведенные названия месяцев, которые могут входить в результирующую строку.

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

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

К таблице

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

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

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

Свойство

Описание

LongDatePattern

Определяет формат компонента даты результирующей строки.

ShortTimePattern

Определяет формат компонента времени результирующей строки.

DayNames

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

MonthNames

Определяет переведенные названия месяцев, которые могут входить в результирующую строку.

TimeSeparator

Определяет строку, разделяющую компоненты времени — часы, минуты и секунды.

AMDesignator

Определяет строку, указывающую на время в интервале от полуночи до полудня в 12-часовом формате указания времени.

PMDesignator

Определяет строку, указывающую на время в интервале от полудня до полуночи в 12-часовом формате указания времени.

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

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

К таблице

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

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

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

Свойство

Описание

FullDateTimePattern

Определяет общий формат результирующей строки.

DayNames

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

MonthNames

Определяет переведенные названия месяцев, которые могут входить в результирующую строку.

TimeSeparator

Определяет строку, разделяющую компоненты времени — часы, минуты и секунды.

AMDesignator

Определяет строку, указывающую на время в интервале от полуночи до полудня в 12-часовом формате указания времени.

PMDesignator

Определяет строку, указывающую на время в интервале от полудня до полуночи в 12-часовом формате указания времени.

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

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

К таблице

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

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

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

Свойство

Описание

ShortDatePattern

Определяет формат компонента даты результирующей строки.

ShortTimePattern

Определяет формат компонента времени результирующей строки.

DateSeparator

Определяет строку, разделяющую компоненты даты — год, месяц и день.

TimeSeparator

Определяет строку, разделяющую компоненты времени — часы, минуты и секунды.

AMDesignator

Определяет строку, указывающую на время в интервале от полуночи до полудня в 12-часовом формате указания времени.

PMDesignator

Определяет строку, указывающую на время в интервале от полудня до полуночи в 12-часовом формате указания времени.

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

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

К таблице

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

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

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

Свойство

Описание

ShortDatePattern

Определяет формат компонента даты результирующей строки.

LongTimePattern

Определяет формат компонента времени результирующей строки.

DateSeparator

Определяет строку, разделяющую компоненты даты — год, месяц и день.

TimeSeparator

Определяет строку, разделяющую компоненты времени — часы, минуты и секунды.

AMDesignator

Определяет строку, указывающую на время в интервале от полуночи до полудня в 12-часовом формате указания времени.

PMDesignator

Определяет строку, указывающую на время в интервале от полудня до полуночи в 12-часовом формате указания времени.

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

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

К таблице

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

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

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

Свойство

Описание

MonthDayPattern

Определяет общий формат результирующей строки.

MonthNames

Определяет переведенные названия месяцев, которые могут входить в результирующую строку.

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

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

К таблице

Описатель формата обратного преобразования ("O", "o")

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

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

Шаблон этого описателя отражает определенный стандарт (ISO 8601). Таким образом, он не изменяется в зависимости от используемого языка и региональных параметров или предоставленного поставщика формата. Строки, которые передаются методу Parse или методу ParseExact должны точно соответствовать этому шаблону пользовательского формата, иначе создается исключение FormatException.

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

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

Dim date1 As Date = #4/10/2008 6:30AM#
Dim dateOffset As New DateTimeOffset(date1, TimeZoneInfo.Local.GetUtcOFfset(date1))
Console.WriteLine(date1.ToString("o"))
' Displays 2008-04-10T06:30:00.0000000                        
Console.WriteLine(dateOffset.ToString("o"))
' Displays 2008-04-10T06:30:00.0000000-07:00                       
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
DateTimeOffset dateOffset = new DateTimeOffset(date1, 
                            TimeZoneInfo.Local.GetUtcOffset(date1));
Console.WriteLine(date1.ToString("o"));
// Displays 2008-04-10T06:30:00.0000000                        
Console.WriteLine(dateOffset.ToString("o"));
// Displays 2008-04-10T06:30:00.0000000-07:00                       

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

' 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.
// 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 {0} {1} to {2} {3}.", originalDate, originalDate.Kind, 
                  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 {0} {1} to {2} {3}.", originalDate, originalDate.Kind, 
                  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 {0} {1} to {2} {3}.", originalDate, originalDate.Kind, 
                  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 {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. Шаблон отражает определенный стандарт. Свойство предназначено только для чтения. Таким образом, оно не изменяется в зависимости от используемых региональных параметров или предоставленного поставщика формата. Строкой пользовательского формата является "ддд, дд ммм гггг чч':'мм':'сс 'GMT'". Когда используется этот спецификатор стандартного формата, операция форматирования или разбора всегда использует инвариантные региональные параметры.

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

Свойство

Описание

RFC1123Pattern

Определяет формат результирующей строки.

AbbreviatedDayNames

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

AbbreviatedMonthNames

Определяет сокращенные названия месяцев, которые могут входить в результирующую строку.

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

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

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

К таблице

Описатель сортируемого формата ("s")

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

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

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

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

К таблице

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

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

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

Свойство

Описание

ShortTimePattern

Определяет формат компонента времени результирующей строки.

TimeSeparator

Определяет строку, разделяющую компоненты времени — часы, минуты и секунды.

AMDesignator

Определяет строку, указывающую на время в интервале от полуночи до полудня в 12-часовом формате указания времени.

PMDesignator

Определяет строку, указывающую на время в интервале от полудня до полуночи в 12-часовом формате указания времени.

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

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

К таблице

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

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

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

Свойство

Описание

LongTimePattern

Определяет формат компонента времени результирующей строки.

TimeSeparator

Определяет строку, разделяющую компоненты времени — часы, минуты и секунды.

AMDesignator

Определяет строку, указывающую на время в интервале от полуночи до полудня в 12-часовом формате указания времени.

PMDesignator

Определяет строку, указывающую на время в интервале от полудня до полуночи в 12-часовом формате указания времени.

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

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

К таблице

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

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

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

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

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

К таблице

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

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

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

Свойство

Описание

FullDateTimePattern

Определяет общий формат результирующей строки.

DayNames

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

MonthNames

Определяет переведенные названия месяцев, которые могут входить в результирующую строку.

TimeSeparator

Определяет строку, разделяющую компоненты времени — часы, минуты и секунды.

AMDesignator

Определяет строку, указывающую на время в интервале от полуночи до полудня в 12-часовом формате указания времени.

PMDesignator

Определяет строку, указывающую на время в интервале от полудня до полуночи в 12-часовом формате указания времени.

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

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

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

К таблице

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

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

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

Свойство

Описание

YearMonthPattern

Определяет общий формат результирующей строки.

MonthNames

Определяет переведенные названия месяцев, которые могут входить в результирующую строку.

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

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

К таблице

Примечания

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

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

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

Свойства DateTimeFormatInfo

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

См. также

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

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

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

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

Дата

Журнал

Причина

Июль 2010

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

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

Март 2011

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

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