Страница 391 из 502
Таблица 22.7. Спецификаторы формата даты и времени
Спецификатор
Формат
D
Дата в длинной форме
d
Дата в краткой форме
F
Дата и время в длинной форме
f
Дата и время в краткой форме
G
Дата — в краткой форме, время — в длинной
gg
Дата и время — в краткой форме
M
Месяц и день
m
То же, что и M
O
Формат даты и времени, включая часовой пояс. Строка, составленная в формате O, может быть преобразована обратно в эквивалентную форму вывода даты и времени. Это так называемый “круговой” формат
о
То же, что и о
R
Дата и время в стандартной форме по Гринвичу
г
То же, что и R
s
Сортируемый формат представления даты и времени
T
Время в длинной форме
t
Время в краткой форме
U
Длинная форма универсального представления даты и времени; время отображается как универсальное синхронизированное время (UTC)
u
Краткая форма универсального представления даты и времени
Y
Месяц и год
y
То же, что и Y
В приведенном ниже примере программы демонстрируется применение спецификаторов формата даты и времени.
<b>// Отформатировать дату и время, используя стандартные форматы,</b>
<b>using System;</b>
<b>class TimeAndDateFormatDemo {</b>
<b> static void Main() {</b>
<b> DateTime dt = DateTime.Now; // получить текущее время</b>
<b> Console.WriteLine("Формат d: {0:d}", dt);</b>
<b> Console.WriteLine("Формат D: {0:D}", dt);</b>
<b> Console.WriteLine("Формат t: {0:t}", dt) ;</b>
<b> Console.WriteLine("Формат'T: {0:T}", dt);</b>
<b> Console.WriteLine("Формат f: {0:f}", dt);</b>
<b> Console.WriteLine("Формат F: {0:F}", dt);</b>
<b> Console.WriteLine("Формат g: {0:g}", dt);</b>
<b> Console.WriteLine("Формат G: {0:G}", dt);</b>
<b> Console.WriteLine("Формат m: {0:m}", dt);</b>
<b> Console.WriteLine("Формат M: {0:M}", dt);</b>
<b> Console.WriteLine("Формат о: {0:o}", dt);</b>
<b> Console.WriteLine("Формат O: {0:O}", dt);</b>
<b> Console.WriteLine("Формат r: {0:r}", dt);</b>
<b> Console.WriteLine("Формат R: {0:R}", dt);</b>
<b> Console.WriteLine("Формат s: {0:s}", dt);</b>
<b> Console.WriteLine("Формат u: {0:u}", dt);</b>
<b> Console.WriteLine("Формат U: {0:U}", dt);</b>
<b> Console.WriteLine("Формат у: {0:y}", dt);</b>
<b> Console.WriteLine("Y format: {0:Y}", dt) ;</b>
<b> }</b>
<b>}</b>
Эта программа дает следующий результат, который, впрочем, зависит от настроек языковых и региональных параметров локализации базового программного обеспечения.
<b>Формат d: 2/11/2010</b>
<b>Формат D: Thursday, February 11, 2010 Формат t: 11:21 AM</b>
<b>Формат T: 11:21:23 AM</b>
<b>Формат f: Thursday, February 11, 2010 11:21 AM</b>
<b>Формат F: Thursday, February 11, 2010 11:21:23 AM</b>
<b>Формат g: 2/11/2010 11:21 AM</b>
<b>Формат G: 2/11/2010 11:21:23 AM</b>
<b>Формат m: February 11</b>
<b>Формат M: February 11</b>
<b>Формат о: 2010-02-11T11:21:23.3768153-06:00</b>
<b>Формат О: 2010-02-11T11:21:23.3768153-06:00</b>
<b>Формат r: Thu, 11 Feb 2010 11:21:23 GMT</b>
<b>Формат R: Thu, 11 Feb 2010 11:21:23 GMT</b>
<b>Формат s: 2010-02-11T11:21:23</b>
<b>Формат u: 2010-02-11 11:21:23Z</b>
<b>Формат U: Thursday, February 11, 2010 5:21:23 PM</b>
<b>Формат у: February, 2010</b>
<b>Формат Y: </b><b>February, 2010</b>
В следующем примере программы воспроизводятся очень простые часы. Время обновляется каждую секунду, и каждый час компьютер издает звонок. Для получения отформатированного строкового представления времени перед его выводом в этой программе используется метод ToStringO из структуры DateTime. Через каждый час символ звукового предупреждающего сигнала присоединяется к отформатированной строке, представляющей время, в результате чего звенит звонок.