DateTimeFormatter Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Форматирует даты и время.
public ref class DateTimeFormatter sealed
/// [Windows.Foundation.Metadata.Activatable(Windows.Globalization.DateTimeFormatting.IDateTimeFormatterFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DateTimeFormatter final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Globalization.DateTimeFormatting.IDateTimeFormatterFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class DateTimeFormatter final
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Globalization.DateTimeFormatting.IDateTimeFormatterFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DateTimeFormatter
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Globalization.DateTimeFormatting.IDateTimeFormatterFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class DateTimeFormatter
function DateTimeFormatter(yearFormat, monthFormat, dayFormat, dayOfWeekFormat, hourFormat, minuteFormat, secondFormat, languages, geographicRegion, calendar, clock)
Public NotInheritable Class DateTimeFormatter
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Примеры
Используйте класс DateTimeFormatter для форматирования даты.
// Format a date via a string template. Note that the order specifed in the string pattern does
// not determine the order of the parts of the formatted string. The user's language and region
// preferences will determine the pattern of the date returned based on the specified parts.
var formatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("month day dayofweek year");
DateTime dateToFormat = DateTime.Now;
var mydate = formatter.Format(dateToFormat);
Грамматика шаблоновСледующая грамматика определяет, что принимается для шаблона:
<pattern> ::= [<literal-text>] <datetime-pattern> [<literal-text>] |
[<literal-text>] <datetime-pattern> <pattern>
<literal-text> ::= <literal-character>+
<literal-character> ::= [^{}] | "{openbrace}" | "{closebrace}"
<datetime-pattern> ::= <date-pattern> | <time-pattern>
<date-pattern> ::= <era> | <year> | <month> | <day> | <dayofweek>
<time-pattern> ::= <period> | <hour> | <minute> | <second> | <timezone>
<era> ::= "{era.abbreviated" [<ideal-length>] "}"
<year> ::= "{year.full" [<ideal-length>] "}" |
"{year.abbreviated" [<ideal-length>] "}"
<month> ::= "{month.full}" |
"{month.solo.full}" |
"{month.abbreviated" [<ideal-length>] "}"
"{month.solo.abbreviated" [<ideal-length>] "}"
"{month.integer" [<ideal-length>] "}"
<dayofweek> ::= "{dayofweek.full}" |
"{dayofweek.solo.full}" |
"{dayofweek.abbreviated" [<ideal-length>] "}"
"{dayofweek.solo.abbreviated" [<ideal-length>] "}"
<day> ::= "{day.integer" [<ideal-length>] "}"
<period> ::= "{period.abbreviated" [<ideal-length>] "}"
<hour> ::= "{hour.integer" [<ideal-length>] "}"
<minute> ::= "{minute.integer" [<ideal-length>] "}"
<second> ::= "{second.integer" [<ideal-length>] "}"
<timezone> ::= "{timezone.full}" |
"{timezone.abbreviated" [<ideal-length>] "}"
<ideal-length> ::= "(" <non-zero-digit> ")"
<non-zero-digit> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
Грамматика шаблонаСледующая грамматика определяет, что принимается для шаблона:
<template> ::= <opt-whitespace> <date> <opt-whitespace> |
<opt-whitespace> <time> <opt-whitespace> |
<opt-whitespace> <specific-date> <whitespace> <time> <opt-whitespace> |
<opt-whitespace> <time> <whitespace> <specific-date> <opt-whitespace> |
<opt-whitespace> <relative-date> <whitespace> <time> <opt-whitespace> |
<opt-whitespace> <time> <whitespace> <relative-date> <opt-whitespace>
<opt-whitespace> ::= [<whitespace>]
<whitespace> ::= " "+
<date> ::= <year> | <month> | <day> | <month-year> | <relative-date> | <specific-date>
<relativedate> ::= <dayofweek> | <month-day> | <relative-longdate>
<specificdate> ::= <shortdate> | <longdate>
<month-day> ::= <month> <whitespace> <day> |
<day> <whitespace> <month>
<relative-longdate> ::= <month> <whitespace> <day> <whitespace> <dayofweek> |
<month> <whitespace> <dayofweek> <whitespace> <day> |
<day> <whitespace> <month> <whitespace> <dayofweek> |
<day> <whitespace> <dayofweek> <whitespace> <month> |
<dayofweek> <whitespace> <day> <whitespace> <month> |
<dayofweek> <whitespace> <month> <whitespace> <day>
<month-year> ::= <month> <whitespace> <year> |
<year> <whitespace> <month>
<shortdate> ::= "shortdate" |
<month> <whitespace> <day> <whitespace> <year> |
<month> <whitespace> <year> <whitespace> <day> |
<day> <whitespace> <month> <whitespace> <year> |
<day> <whitespace> <year> <whitespace> <month> |
<year> <whitespace> <day> <whitespace> <month> |
<year> <whitespace> <month> <whitespace> <day>
<longdate> ::= "longdate" |
<year> <whitespace> <month> <whitespace> <day> <whitespace> <dayofweek> |
<year> <whitespace> <month> <whitespace> <dayofweek> <whitespace> <day> |
<year> <whitespace> <day> <whitespace> <month> <whitespace> <dayofweek> |
<year> <whitespace> <day> <whitespace> <dayofweek> <whitespace> <month> |
<year> <whitespace> <dayofweek> <whitespace> <day> <whitespace> <month> |
<year> <whitespace> <dayofweek> <whitespace> <month> <whitespace> <day> |
<month> <whitespace> <year> <whitespace> <day> <whitespace> <dayofweek> |
<month> <whitespace> <year> <whitespace> <dayofweek> <whitespace> <day> |
<day> <whitespace> <year> <whitespace> <month> <whitespace> <dayofweek> |
<day> <whitespace> <year> <whitespace> <dayofweek> <whitespace> <month> |
<dayofweek> <whitespace> <year> <whitespace> <day> <whitespace> <month> |
<dayofweek> <whitespace> <year> <whitespace> <month> <whitespace> <day> |
<month> <whitespace> <day> <whitespace> <year> <whitespace> <dayofweek> |
<month> <whitespace> <dayofweek> <whitespace> <year> <whitespace> <day> |
<day> <whitespace> <month> <whitespace> <year> <whitespace> <dayofweek> |
<day> <whitespace> <dayofweek> <whitespace> <year> <whitespace> <month> |
<dayofweek> <whitespace> <day> <whitespace> <year> <whitespace> <month> |
<dayofweek> <whitespace> <month> <whitespace> <year> <whitespace> <day> |
<month> <whitespace> <day> <whitespace> <dayofweek> <whitespace> <year> |
<month> <whitespace> <dayofweek> <whitespace> <day> <whitespace> <year> |
<day> <whitespace> <month> <whitespace> <dayofweek> <whitespace> <year> |
<day> <whitespace> <dayofweek> <whitespace> <month> <whitespace> <year> |
<dayofweek> <whitespace> <day> <whitespace> <month> <whitespace> <year> |
<dayofweek> <whitespace> <month> <whitespace> <day> <whitespace> <year>
<time> ::= <hour> |
<hour> <whitespace> <timezone> |
<timezone> <whitespace> <hour> |
<shorttime> |
<longtime>
<shorttime> ::= "shorttime" |
<hour> <whitespace> <minute> |
<minute> <whitespace> <hour> |
<timezone> <whitespace> <hour> <whitespace> <minute> |
<timezone> <whitespace> <minute> <whitespace> <hour> |
<hour> <whitespace> <timezone> <whitespace> <minute> |
<minute> <whitespace> <timezone> <whitespace> <hour> |
<hour> <whitespace> <minute> <whitespace> <timezone> |
<minute> <whitespace> <hour> <whitespace> <timezone>
<longtime> ::= "longtime" |
<hour> <whitespace> <minute> <whitespace> <second> |
<hour> <whitespace> <second> <whitespace> <minute> |
<minute> <whitespace> <hour> <whitespace> <second> |
<minute> <whitespace> <second> <whitespace> <hour> |
<second> <whitespace> <minute> <whitespace> <hour> |
<second> <whitespace> <hour> <whitespace> <minute> |
<timezone> <whitespace> <hour> <whitespace> <minute> <whitespace> <second> |
<timezone> <whitespace> <hour> <whitespace> <second> <whitespace> <minute> |
<timezone> <whitespace> <minute> <whitespace> <hour> <whitespace> <second> |
<timezone> <whitespace> <minute> <whitespace> <second> <whitespace> <hour> |
<timezone> <whitespace> <second> <whitespace> <minute> <whitespace> <hour> |
<timezone> <whitespace> <second> <whitespace> <hour> <whitespace> <minute> |
<hour> <whitespace> <timezone> <whitespace> <minute> <whitespace> <second> |
<hour> <whitespace> <timezone> <whitespace> <second> <whitespace> <minute> |
<minute> <whitespace> <timezone> <whitespace> <hour> <whitespace> <second> |
<minute> <whitespace> <timezone> <whitespace> <second> <whitespace> <hour> |
<second> <whitespace> <timezone> <whitespace> <minute> <whitespace> <hour> |
<second> <whitespace> <timezone> <whitespace> <hour> <whitespace> <minute> |
<hour> <whitespace> <minute> <whitespace> <timezone> <whitespace> <second> |
<hour> <whitespace> <second> <whitespace> <timezone> <whitespace> <minute> |
<minute> <whitespace> <hour> <whitespace> <timezone> <whitespace> <second> |
<minute> <whitespace> <second> <whitespace> <timezone> <whitespace> <hour> |
<second> <whitespace> <minute> <whitespace> <timezone> <whitespace> <hour> |
<second> <whitespace> <hour> <whitespace> <timezone> <whitespace> <minute> |
<hour> <whitespace> <minute> <whitespace> <second> <whitespace> <timezone> |
<hour> <whitespace> <second> <whitespace> <minute> <whitespace> <timezone> |
<minute> <whitespace> <hour> <whitespace> <second> <whitespace> <timezone> |
<minute> <whitespace> <second> <whitespace> <hour> <whitespace> <timezone> |
<second> <whitespace> <minute> <whitespace> <hour> <whitespace> <timezone> |
<second> <whitespace> <hour> <whitespace> <minute> <whitespace> <timezone>
<year> ::= "year" | "year.full" | "year.abbreviated"
<month> ::= "month" | "month.full" | "month.abbreviated" | "month.numeric"
<day> ::= "day"
<dayofweek> ::= "dayofweek" | "dayofweek.full" | "dayofweek.abbreviated"
<hour> ::= "hour"
<minute> ::= "minute"
<second> ::= "second"
<timezone> ::= "timezone" | "timezone.full" | "timezone.abbreviated"
Комментарии
Примечание
Этот API обновляется для поддержки изменения японской эры за май 2019 г. Если приложение поддерживает японский календарь, убедитесь, что он правильно обрабатывает новую эру. Дополнительные сведения см. в статье Подготовка приложения к изменениям японской эпохи .
Примечание
Если приложение передает языковые теги, используемые в этом классе, в любые функции поддержки национальных языков , оно должно сначала преобразовать теги, вызвав ResolveLocaleName.
Некоторые конструкторы для DateTimeFormatter принимают строковый параметр formatTemplate , указывающий запрошенные компоненты для форматирования. Этот параметр может быть шаблоном формата или шаблоном формата. Шаблоны форматирования удобны для использования и предоставляют форматирование, типичное для указанного языка, часов и календаря. Шаблоны форматирования обеспечивают больший контроль над выходными данными, чем шаблоны форматирования. Если требуется нестандартное форматирование, используйте шаблоны форматирования вместо шаблонов.
В шаблоне формата указываются компоненты (время, дата, день недели и т. д.), которые необходимо включить в форматированные выходные данные. Форматировщик форматирует компоненты в соответствии с указанным языком, часами и календарем. Порядок компонентов в шаблоне не имеет значения; модуль форматирования упорядочивает компоненты в соответствии с порядком, показанным на языке шаблонов форматирования ниже.
В следующей таблице перечислены некоторые часто используемые шаблоны. В шаблонах с несколькими компонентами компонент может быть любым из поддерживаемых вариантов компонентов, а компоненты могут находиться в любом порядке. Например, поддерживается "dayofweek.full year month.numeric day". (Ниже после примеров приведена грамматика, определяющая допустимые шаблоны.)
Важно!
Вы не можете произвольно объединять компоненты и обязательно получить допустимый шаблон. Единственными допустимыми являются шаблоны, определенные предоставленной грамматикой.
Шаблон |
---|
longdate |
shortdate |
Давний |
короткое время |
dayofweek |
dayofweek.full |
dayofweek.abbreviated |
day |
month |
month.full |
month.abbreviated |
month.numeric |
year |
year.full |
year.abbreviated |
dayofweek день месяц год |
dayofweek день месяц |
день месяц год |
день месяц |
месяц год |
hour |
minute |
second |
час минуты секунды |
час минуты |
timezone |
timezone.full |
timezone.abbreviated |
год месяц день час |
В следующей таблице показаны примеры выходных данных, созданных с различными значениями шаблона, языка и часов. Столбец "Эквивалентный шаблон" предоставляет шаблон, который создает те же выходные данные, что и шаблон.
Шаблон | Язык | "Часы" | Выходные данные | Эквивалентный шаблон |
---|---|---|---|---|
longdate | ru-RU | <не указано> | 2 сентября 2013 г. | {dayofweek.full}, {month.full} {day.integer}, {year.full} |
longdate | fr-FR | <не указано> | lundi 2 сентября 2013 | {dayofweek.full} {day.integer} {month.full} {year.full} |
shortdate | ru-RU | <не указано> | 9/2/2013 | {month.integer}/{day.integer}/{year.full} |
shortdate | fr-FR | <не указано> | 02/09/2013 | {day.integer(2)}/{month.integer(2)}/{year.full} |
dayofweek month day | ru-RU | <не указано> | Понедельник, 2 сентября | {dayofweek.full}, {month.full} {day.integer} |
день месяца dayofweek | ru-RU | <не указано> | Понедельник, 2 сентября | {dayofweek.full}, {month.full} {day.integer} |
Давний | ru-RU | <не указано> | 06:01:24 | {hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated} |
Давний | ru-RU | 24HourClock | 17:32:45 | {hour.integer}:{minute.integer(2)}:{second.integer(2)} |
Давний | fr-FR | <не указано> | 17:32:45 | {hour.integer(2)}:{minute.integer(2)}:{second.integer(2)} |
короткое время | ru-RU | <не указано> | 6:01 | {hour.integer}:{minute.integer(2)} {period.abbreviated} |
короткое время | ru-RU | 24HourClock | 17:32 | {hour.integer}:{minute.integer(2)} |
короткое время | fr-FR | <не указано> | 17:32 | {hour.integer(2)}:{minute.integer(2)} |
Шаблоны формата состоят из литеральной строки с полями, разделенными фигурными скобками, например "{day.numeric}/{month.numeric}/{year.full}". В следующей таблице перечислены некоторые часто используемые поля. (Ниже после примеров приведена грамматика, которая определяет допустимые шаблоны.)
Важно!
Вы не можете произвольно объединять поля и обязательно получить допустимый шаблон. Единственными допустимыми являются шаблоны, определенные предоставленной грамматикой.
Форматировать поле шаблона |
---|
{openbrace} |
{closebrace} |
{dayofweek.solo.<type>} где <type> имеет значение full / сокращено / abbreviated(n) |
{dayofweek.<type>} где <type> имеет значение full / сокращено / abbreviated(n) |
{day.<type>} где <type> — integer / integer(n) |
{month.<type>} где <тип> — full / сокращенный / abbreviated(n) / integer / integer(n) |
{month.solo.<type>} где <type> имеет значение full / сокращено / abbreviated(n) |
{year.<type>} где <type> имеет значение full / сокращено / abbreviated(n) |
{era.<type>} где <type> имеет значение full / сокращено / abbreviated(n) |
{hour.<type>} где <type> — integer / integer(n) |
{period.<type>} где <type> имеет значение full / сокращено / abbreviated(n) |
{minute.<type>} где <type> — integer / integer(n) |
{second.<type>} где <type> — integer / integer(n) |
{часовой пояс.<type>} где <type> имеет значение full / сокращено / abbreviated(n) |
Примечание
- Используйте {openbrace} или {closebrace} , чтобы указать, что "{" или "}" отображается в строке литерала.
- solo задает автономную форму. Для языков с различиями генитивного регистра генитивный регистр является регистром без пометки. Чтобы получить номинативный регистр, используйте solo.
- целое число(2) для пятого дня месяца (например) имеет значение "05", а целое число(1) — "5". целое число дает наилучший n для заданного сочетания языка и календаря.
- В течение многих лет , full производит все цифры ("2013"). сокращенное является синонимом сокращенного (2) — 2-значного года григорианского календаря ("13"). (Другие календари могут в конечном итоге использовать что-то другое по умолчанию. Мы сохранили сокращенное значение, чтобы иметь семантику лучшего для определенного сочетания языка и календаря.) abbreviated(n) усекается до наименее значимых n цифр (например, 2013 с n =1 имеет значение "3").
В следующей таблице приведены примеры выходных данных форматировщиков, созданных с различными значениями шаблона, языка и часов.
Шаблон | Язык | "Часы" | Выходные данные |
---|---|---|---|
{dayofweek.full}, {month.full} {day.integer}, {year.full} | ru-RU | <не указано> | 2 сентября 2013 г. |
{dayofweek.full}, {day.integer(2)} {month.full}, {year.full} | fr-FR | <не указано> | lundi, 02 septembre, 2013 |
{month.integer}/{day.integer}/{year.full} | ru-RU | <не указано> | 9/2/2013 |
{month.integer}/{day.integer}/{year.abbreviated} | ru-RU | <не указано> | 9/2/13 |
{month.integer(2)}/{day.integer(2)}/{year.abbreviated} | ru-RU | <не указано> | 09/02/13 |
{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated} | ru-RU | <не указано> | 6:01:24 |
{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated} | ru-RU | 24HourClock | 17:32:45 |
Конструкторы
Свойства
Calendar |
Возвращает календарь, используемый при форматировании дат. |
Clock |
Возвращает часы, используемые при форматировании времени. |
GeographicRegion |
Возвращает или задает регион, используемый при форматировании дат и времени. |
IncludeDay |
Возвращает значение DayFormat в шаблоне. |
IncludeDayOfWeek |
Возвращает значение DayOfWeekFormat в шаблоне. |
IncludeHour |
Возвращает значение HourFormat в шаблоне. |
IncludeMinute |
Возвращает значение MinuteFormat в шаблоне. |
IncludeMonth |
Возвращает monthFormat в шаблоне. |
IncludeSecond |
Возвращает значение SecondFormat в шаблоне. |
IncludeYear |
Возвращает YearFormat в шаблоне. |
Languages |
Возвращает список приоритетов идентификаторов языка, используемых при форматировании дат и времени. |
LongDate |
Возвращает объект DateTimeFormatter , который форматирует даты в соответствии с пользовательским шаблоном длинных дат. |
LongTime |
Возвращает объект DateTimeFormatter , который форматирует время в соответствии с шаблоном длительного времени, выбранного пользователем. |
NumeralSystem |
Возвращает или задает систему нумеровки, используемую для форматирования дат и времени. |
Patterns |
Возвращает шаблоны, соответствующие этому шаблону, которые используются при форматировании дат и времени. |
ResolvedGeographicRegion |
Возвращает географический регион, который последний раз использовался для форматирования дат и времени. |
ResolvedLanguage |
Возвращает язык, который последний раз использовался для форматирования дат и времени. |
ShortDate |
Возвращает объект DateTimeFormatter , который форматирует даты в соответствии с пользовательским шаблоном короткой даты. |
ShortTime |
Возвращает объект DateTimeFormatter , который форматирует время в соответствии с шаблоном короткого времени, выбранного пользователем. |
Template |
Возвращает строковое представление этого шаблона формата. |
Методы
Format(DateTime) |
Возвращает строковое представление предоставленной даты и времени. |
Format(DateTime, String) |
Возвращает строку, представляющую заданную дату и время в заданном часовом поясе, соответствующую шаблону, используемому в настоящее время модульом форматирования. |