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

Обновлен: Ноябрь 2007

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

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

Описатели настраиваемых форматов даты и времени

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

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

Описание

d

Представляет день месяца в виде числа от 1 до 31. Одноразрядные числа форматируются без нуля в начале. Дополнительные сведения об использовании одиночных описателей настраиваемых форматов см. в разделе Использование единичных описателей настраиваемых форматов.

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

dd

Представляет день месяца в виде числа от 01 до 31. Одноразрядные числа форматируются с нулем в начале. В следующем примере описатель настраиваемого формата dd используется в строке настраиваемого формата.

ddd

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

dddd (и любое число добавочных описателей d)

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

f

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

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

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

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

ff

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

fff

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

ffff

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

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

fffff

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

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

ffffff

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

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

fffffff

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

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

F

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

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

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

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

FF

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

FFF

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

FFFF

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

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

FFFFF

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

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

FFFFFF

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

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

FFFFFFF

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

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

g, gg (и любое число дополнительных описателей g)

Представляет период или эру (например, "н. э."). Этот шаблон не учитывается при форматировании, если форматируемой дате не сопоставлена строка периода или эры. Дополнительные сведения об использовании единичных описателей форматов см. в разделе Использование единичных описателей настраиваемых форматов.

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

h

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

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

hh, hh (и любое число дополнительных описателей h)

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

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

H

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

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

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

HH, HH (и любое число дополнительных описателей H)

Представляет часы числом от 00 до 23, т. е. в 24-часовом виде, в котором часы отсчитываются от полуночи, начиная с нуля. Часы с одной цифрой форматируются с нулем в начале. В следующем примере описатель настраиваемого формата HH используется в строке настраиваемого формата.

K

Представляет сведения о часовом поясе для значений даты и времени. При использовании со значениями DateTime результирующая строка определяется значением свойства DateTime.Kind. Для местного часового пояса (значение свойства DateTime.Kind равно DateTimeKind.Local) этот описатель эквивалентен описателю zzz и выдает результирующую строку, содержащую локальное смещение от универсального синхронизированного времени (UTC); например, "–07:00". Для времени UTC (значение свойства DateTime.Kind равно DateTimeKind.Utc) результирующая строка содержит знак "Z" для представления даты в формате UTC. Для времени в неопределенном часовом поясе (значение времени, свойство DateTime.Kind которого равно DateTimeKind.Unspecified) результат эквивалентен String.Empty. Для значений DateTimeOffset описатель формата K эквивалентен описателю формата zz, который выдает результирующую строку, содержащую смещение значения от времени UTC в виде DateTimeOffset.

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

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

m

Представляет минуты как число от 0 до 59. Значение представляет собой количество целых минут, прошедших за последний час. Минуты с одной цифрой форматируются без нуля в начале. Дополнительные сведения об использовании единичных описателей форматов см. в разделе Использование единичных описателей настраиваемых форматов. В следующем примере описатель настраиваемого формата m используется в строке настраиваемого формата.

mm, mm (и любое число дополнительных описателей m)

Представляет минуты как число от 00 до 59. Значение представляет собой количество целых минут, прошедших за последний час. Минуты с одной цифрой форматируются с нулем в начале. В следующем примере описатель настраиваемого формата mm используется в строке настраиваемого формата.

M

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

MM

Представляет месяц как число от 01 до 12. Месяц с одной цифрой форматируется с нулем в начале. В следующем примере описатель настраиваемого формата MM используется в строке настраиваемого формата.

MMM

Представляет сокращенное название месяца согласно текущему значению свойства DateTimeFormatInfo.AbbreviatedMonthNames. В следующем примере описатель настраиваемого формата MMM используется в строке настраиваемого формата.

MMMM

Представляет полное название месяца согласно текущему значению свойства DateTimeFormatInfo.MonthNames. В следующем примере описатель настраиваемого формата MMMM используется в строке настраиваемого формата.

s

Представляет секунды как число от 0 до 59. Результат представляет количество целых секунд, прошедших за последнюю минуту. Секунды с одной цифрой форматируются без нуля в начале. Дополнительные сведения об использовании единичных описателей форматов см. в разделе Использование единичных описателей настраиваемых форматов. В следующем примере описатель настраиваемого формата s используется в строке настраиваемого формата.

ss, ss (и любое число дополнительных описателей s)

Представляет секунды как число от 00 до 59. Результат представляет количество целых секунд, прошедших за последнюю минуту. Секунды с одной цифрой форматируются с нулем в начале. В следующем примере описатель настраиваемого формата ss используется в строке настраиваемого формата.

t

Представляет первый знак обозначения AM/PM, определяемый текущим значением свойства DateTimeFormatInfo.AMDesignator или DateTimeFormatInfo.PMDesignator. Обозначение AM используется, если значение форматируемого часа меньше 12. В противном случае используется обозначение PM. Дополнительные сведения об использовании единичных описателей форматов см. в разделе Использование единичных описателей настраиваемых форматов.

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

tt, tt (и любое число дополнительных описателей t)

Представляет обозначение AM/PM в соответствии с текущим значением свойства DateTimeFormatInfo.AMDesignator или DateTimeFormatInfo.PMDesignator. Обозначение AM используется, если значение форматируемого часа меньше 12. В противном случае используется обозначение PM.

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

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

y

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

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

yy

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

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

yyy

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

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

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

yyyy

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

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

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

yyyyy (и любое число дополнительных описателей y)

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

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

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

z

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

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

Смещение всегда отображается со знаком в начале. Плюс (+) указывает на то, что часы опережают время UTC, а минус (–) — на то, что они от него отстают. Смещение принимает значения от –12 до +13. Смещение с одной цифрой форматируется без нуля в начале. Дополнительные сведения об использовании единичных описателей форматов см. в разделе Использование единичных описателей настраиваемых форматов. В следующем примере описатель настраиваемого формата z используется в строке настраиваемого формата.

zz

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

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

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

zzz, zzz (и любое число дополнительных описателей z)

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

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

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

:

Представляет разделитель времени, определяемый текущим свойством DateTimeFormatInfo.TimeSeparator. Этот разделитель используется для разделения часов, минут и секунд.

/

Представляет разделитель даты, определяемый текущим свойством DateTimeFormatInfo.DateSeparator. Этот разделитель используется для разделения лет, месяцев и дней.

"

Представляет строку в кавычках (знак кавычки). Отображает значение любой строки между двух кавычек ("). В приложении всем кавычкам должен предшествовать escape-знак ("\").

'

Представляет строку в одиночных кавычках (апострофах). Отображает значение строки между двух одинарных кавычек (').

%c

Представляет результат, соответствующий описателю настраиваемого формата c, если строка настраиваемого формата даты и времени состоит исключительно из этого описателя настраиваемого формата. Чтобы использовать описатели настраиваемого формата "d", "f", "F", "h", "m", "s", "t", "y", "z", "H" или "M" по отдельности, в приложении следует указывать "%d", "%f", "%F", "%h", "%m", "%s", "%t", "%y", "%z", "%H" или "%M". Дополнительные сведения об использовании единичных описателей форматов см. в разделе Использование единичных описателей настраиваемых форматов.

\c

Представляет escape-знак и отображает знак "c" в качестве литерала, когда этому знаку предшествует escape-знак ("\"). Для вставки знака обратной косой черты в выходную строку приложение должно использовать два escape-знака ("\\").

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

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

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

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

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

Свойства DateTimeFormatInfo

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

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

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

Строка настраиваемого формата даты и времени состоит из двух или более знаков. Например, если строка формата состоит только из описателя h, то строка формата интерпретируется как описатель стандартного формата даты и времени. Тем не менее, в данном случае будет создано исключение, поскольку описатель h стандартного форматадаты и времени отсутствует.

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

См. также

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

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

Ссылки

System.DateTime

System.IFormatProvider

Другие ресурсы

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