Строки стандартных форматов даты и времени
Строка стандартного формата даты и времени использует один символ в качестве описателя формата для определения текстового представления DateTime или значения DateTimeOffset. Любая строка формата даты и времени, содержащая более одной буквы, включая пробелы, интерпретируется как строка пользовательского формата даты и времени. Строку стандартного или пользовательского формата можно использовать двумя способами:
Для определения строки, являющейся результатом операции форматирования.
Для определения текстового представления значения даты и времени, которое можно преобразовать в значение DateTime или DateTimeOffset с помощью операции синтаксического анализа.
Совет
Вы можете загрузить служебную программу форматирования — приложение Windows Forms для .NET, позволяющее применять строки формата к значениям даты и времени и числовым значениям и отображающее результирующую строку. Исходный код доступен для C# и Visual Basic.
Примечание
Некоторые примеры C# в этой статье выполняются во встроенном средстве выполнения кода и на тестовой площадке Try.NET. Нажмите на кнопку Выполнить, чтобы выполнить пример в интерактивном окне. После выполнения кода вы можете изменить его и выполнить измененный код, снова нажав на кнопку Выполнить. Либо в интерактивном окне выполняется измененный код, либо, если компиляция завершается с ошибкой, в интерактивном окне отображаются все сообщения об ошибках компилятора C#.
Местный часовой пояс площадки и средства запуска встроенного кода Try.NET указан в формате UTC. Это может повлиять на работу и выходные данные примеров, иллюстрирующих DateTime, DateTimeOffset, типы TimeZoneInfo и их члены.
Таблица описателей формата
В следующей таблице описаны спецификаторы стандартных форматов даты и времени. Если не указано иное, то описатель стандартного формата даты и времени выдает одинаковое строковое представление независимо от того, используется ли он со значением DateTime или со значением DateTimeOffset. Дополнительные сведения об использовании стандартных строк формата даты и времени см. в разделе Параметры панели управления и Панель свойств DateTimeFormatInfo.
Описатель формата | Описание | Примеры |
---|---|---|
"d" | Короткий шаблон даты. Дополнительные сведения см. в подразделе Описатель краткого формата даты ("d"). |
2009-06-15T13:45:30 -> 15.06.2009 (en-US) 2009-06-15T13:45:30 -> 15/06/2009 (fr-FR) 2009-06-15T13:45:30 -> 2009/06/15 (ja-JP) |
"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 г. 13:45 (en-US) 2009-06-15T13:45:30 -> den 15 juni 2009 13:45 (sv-SE) 2009-06-15T13:45:30 -> Αευτέρα, 15 Ιοιποι 2009 1:45 μμ (el-GR) |
"F" | Полный шаблон даты и времени (полный шаблон времени). Дополнительная информация: Описатель полного формата даты и полного формата времени ("F"). |
2009-06-15T13:45:30 -> понедельник, 15 июня 2009 г. 13: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 -> 15.06.2009 13:45 (en-US) 2009-06-15T13:45:30 -> 15/06/2009 13:45 (es-ES) 2009-06-15T13:45:30 -> 06.2009 15 13:45 (zh-CN) |
"G" | Общий шаблон даты и времени (полный шаблон времени). Дополнительная информация: Описатель общего формата даты и полного формата времени ("G"). |
2009-06-15T13:45:30 -> 15.06.2009 13:45:30 (en-US) 2009-06-15T13:45:30 -> 15/06/2009 13:45:30 (es-ES) 2009-06-15T13:45:30 -> 6/2009/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.0000000-07:00 2009-06-15T13:45:30 (DateTimeKind.Utc) --> 2009-06-15T13:45:30.0000000Z 2009-06-15T13:45:30 (DateTimeKind.Unspecified) --> 2009-06-15T13:45:30.00000000 Значения DateTimeOffset: 2009-06-15T13:45:30-07:00 --> 2009-06-15T13:45:30.0000000-07:00 |
"R", "r" | Шаблон RFC1123. Дополнительная информация: Описатель формата RFC1123 ("R", "r"). |
DateTimeOffset input: 2009-06-15T13:45:30 -> Mon, 15 Jun 2009 20:45:30 GMT DateTime input: 2009-06-15T13:45:30 -> Mon, 15 Jun 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 -> 13:45 (en-US) 2009-06-15T13:45:30 -> 13:45 (hr-HR) 2009-06-15T13:45:30 -> 01:45 م (ar-EG) |
"T" | Полный шаблон времени. Дополнительная информация: Описатель полного формата времени ("T"). |
2009-06-15T13:45:30 -> 13:45:30 (en-US) 2009-06-15T13:45:30 -> 13:45:30 (hr-HR) 2009-06-15T13:45:30 -> 01:45:30 م (ar-EG) |
"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 г. 20:45:30 PM (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" указывает, что значение даты и времени будет отображаться с использованием шаблона короткого формата даты. Для инвариантных региональных параметров таким шаблоном является "мм/дд/гггг". Для региональных параметров fr-FR это "дд/мм/гггг". Для региональных параметров 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" | Отсутствуют | yyyy'-'MM'-'dd'T'HH':'mm':'ss'. fffffffK |
"R" или "r" | RFC1123Pattern | ддд, дд ммм гггг чч':'мм':'сс 'GMT' |
"s" | SortableDateTimePattern | гггг'-'мм'-'дд'T'чч':'мм':'сс |
"u" | UniversalSortableDateTimePattern | гггг'-'мм'-'дд чч':'мм':'сс'Z' |
Строки стандартного формата также можно использовать в операциях синтаксического анализа с методами DateTime.ParseExact и DateTimeOffset.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(" {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
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.
Форматы даты
Эта группа содержит следующие форматы:
Описатель короткого формата даты ("d")
Описатель стандартного формата "d" представляет строку настраиваемого формата даты и времени, определяемую свойством DateTimeFormatInfo.ShortDatePattern для конкретного языка и региональных параметров. Например, строкой настраиваемого формата, возвращаемой свойством ShortDatePattern для инвариантного языка и региональных параметров, будет строка "ММ/дд/гггг".
В следующей таблице представлены свойства объекта DateTimeFormatInfo, обеспечивающие управление форматированием возвращаемой строки.
Свойство. | Описание |
---|---|
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. Например, строкой пользовательского формата для инвариантных региональных параметров является "дддд, дд мммм гггг".
В следующей таблице представлены свойства объекта DateTimeFormatInfo, обеспечивающие управление форматированием возвращаемой строки.
Свойство. | Описание |
---|---|
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").
- Описатель общего формата даты и краткого формата времени ("g").
- Описатель общего формата даты и полного формата времени ("G").
- Описатель формата обратного преобразования ("O", "o").
- Описатель формата RFC1123 ("R", "r").
- Описатель сортируемого формата ("s").
- Описатель универсального сортируемого формата ("u").
- Описатель универсального полного формата ("U").
Описатель полного формата даты и краткого формата времени ("f")
Описатель стандартного формата "f" представляет сочетание полного формата даты ("D") и короткого формата времени ("t"), разделенных пробелом.
Форматирование результирующей строки определяется сведениями о форматировании в указанном объекте DateTimeFormatInfo. В следующей таблице представлены свойства объекта DateTimeFormatInfo, обеспечивающие управление форматированием возвращаемой строки. Настраиваемый описатель формата, возвращаемый свойствами DateTimeFormatInfo.LongDatePattern и DateTimeFormatInfo.ShortTimePattern некоторых языков и региональных параметров, может использовать не все свойства.
Свойство. | Описание |
---|---|
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. Например, строкой пользовательского формата для инвариантных региональных параметров является "дддд, дд мммм гггг чч:мм:сс".
В следующей таблице представлены свойства объекта DateTimeFormatInfo, обеспечивающие управление форматированием возвращаемой строки. Описатель настраиваемого формата, возвращаемый свойством FullDateTimePattern некоторых языков и региональных параметров, может использовать не все свойства.
Свойство. | Описание |
---|---|
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 некоторых языков и региональных параметров, может использовать не все свойства.
Свойство. | Описание |
---|---|
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 некоторых языков и региональных параметров, может использовать не все свойства.
Свойство. | Описание |
---|---|
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.
Описатель формата обратного преобразования "O" или "o" соответствует строке настраиваемого формата "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK" для значений DateTime и "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz" — для значений DateTimeOffset. В данной строке пары апострофов, разделяющие отдельные символы, такие как дефисы, двоеточия и букву "T", указывают, что отдельный символ является литералом, который не может быть изменен. Сами апострофы не отображаются в выходной строке.
Описатель стандартного формата "O" или "o" (и "yyyy'-'MM'-'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" соответствует международному стандарту, операция форматирования или синтаксического анализа, использующая описатель, всегда использует инвариантный региональный параметр и григорианский календарь.
Строки, передаваемые методам Parse
, TryParse
, ParseExact
и TryParseExact
классов DateTime и DateTimeOffset, можно анализировать с помощью описателя формата "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("{0} ({1}) --> {0:O}", dat, dat.Kind);
DateTime uDat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Utc);
Console.WriteLine("{0} ({1}) --> {0:O}", uDat, uDat.Kind);
DateTime lDat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Local);
Console.WriteLine("{0} ({1}) --> {0:O}\n", lDat, lDat.Kind);
DateTimeOffset dto = new DateTimeOffset(lDat);
Console.WriteLine("{0} --> {0:O}", dto);
}
}
// 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 {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.
' 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 . Шаблон отражает определенный стандарт. Свойство предназначено только для чтения. Таким образом, оно не изменяется в зависимости от используемых региональных параметров или предоставленного поставщика формата. Строкой пользовательского формата является "ддд, дд ммм гггг чч':'мм':'сс 'GMT'". Когда используется этот спецификатор стандартного формата, операция форматирования или разбора всегда использует инвариантные региональные параметры.
Результирующая строка обусловлена следующими свойствами объекта DateTimeFormatInfo, возвращаемого свойством DateTimeFormatInfo.InvariantInfo, представляющим инвариант языка и региональных параметров.
Свойство. | Описание |
---|---|
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). Свойство предназначено только для чтения. Таким образом, оно не изменяется в зависимости от используемых региональных параметров или предоставленного поставщика формата. Строкой пользовательского формата является "гггг'-'мм'-'дд'T'чч':'мм':'сс".
Описатель формата "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. Шаблон отражает определенный стандарт. Свойство предназначено только для чтения. Таким образом, оно не изменяется в зависимости от используемых региональных параметров или предоставленного поставщика формата. Строкой пользовательского формата является "гггг'-'мм'-'дд чч':'мм':'сс'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 некоторых языков и региональных параметров, может использовать не все свойства.
Свойство. | Описание |
---|---|
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. Например, строкой пользовательского формата для инвариантных региональных параметров является "чч:мм".
Форматирование результирующей строки определяется сведениями о форматировании в указанном объекте DateTimeFormatInfo. В следующей таблице представлены свойства объекта DateTimeFormatInfo, обеспечивающие управление форматированием возвращаемой строки. Описатель настраиваемого формата, возвращаемый свойством DateTimeFormatInfo.ShortTimePattern некоторых языков и региональных параметров, может использовать не все свойства.
Свойство. | Описание |
---|---|
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 для конкретного языка и региональных параметров. Например, строкой пользовательского формата для инвариантных региональных параметров является "чч:мм:сс".
В следующей таблице представлены свойства объекта DateTimeFormatInfo, обеспечивающие управление форматированием возвращаемой строки. Описатель настраиваемого формата, возвращаемый свойством DateTimeFormatInfo.LongTimePattern некоторых языков и региональных параметров, может использовать не все свойства.
Свойство. | Описание |
---|---|
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. Например, строкой пользовательского формата для инвариантных региональных параметров является "мммм дд".
В следующей таблице представлены свойства объекта DateTimeFormatInfo, обеспечивающие управление форматированием возвращаемой строки.
Свойство. | Описание |
---|---|
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 для конкретного языка и региональных параметров. Например, строкой пользовательского формата для инвариантных региональных параметров является "гггг мммм".
В следующей таблице представлены свойства объекта DateTimeFormatInfo, обеспечивающие управление форматированием возвращаемой строки.
Свойство. | Описание |
---|---|
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
Параметры панели управления
Параметры элемента панели управления Язык и региональные стандарты в Windows влияют на выходную строку, что получается в результате операции форматирования. Эти параметры используются для инициализации объекта, связанного DateTimeFormatInfo с текущим языком и региональными параметрами, который предоставляет значения, используемые для управления форматированием. Результирующие строки будут различаться на компьютерах с разными параметрами.
Кроме того, если конструктор CultureInfo(String) используется для создания нового экземпляра объекта CultureInfo , представляющего язык и региональные параметры, аналогичные текущему языку и региональным параметрам системы, то все настройки, заданные в разделе Язык и региональные стандарты панели управления, будут применяться к новому объекту CultureInfo . Можно воспользоваться конструктором CultureInfo(String, Boolean) для создания объекта CultureInfo , который не отражает настройки системы.
Свойства DateTimeFormatInfo
Форматирование зависит от свойств текущего DateTimeFormatInfo объекта, который неявно предоставляется текущим языком и региональными параметрами или явно IFormatProvider параметром метода, который вызывает форматирование. Для параметра IFormatProvider приложение должно указать объект CultureInfo, представляющий региональные параметры, или объект DateTimeFormatInfo, представляющий соглашения о форматировании даты и времени для конкретных региональных параметров. Многие спецификаторы стандартных форматов даты и времени являются псевдонимами для шаблонов форматирования, которые определены свойствами текущего объекта DateTimeFormatInfo. Приложение может изменить результат, полученный некоторыми спецификаторами стандартных форматов даты и времени, изменив соответствующие шаблоны форматирования соответствующего свойства DateTimeFormatInfo.