C# 4.0 полное руководство - 2011
Шрифт:
M
Месяц в виде числа в пределах от 1 до 12
MM
Месяц в виде числа в пределах от 1 до 12. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
МММ
Сокращенное название месяца
MMMM
Полное название месяца
s
Секунды
ss
Секунды.
t
Символ “А” или “Р”, обозначающий время А.М. (до полудня) или P.M. (после полудня) соответственно
Символ-заполнитель
Назначение
tt
A.M. или P.M.
У
Год в виде двух цифр, если недостаточно одной
УУ
Год в виде двух цифр. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
УУУ
Год в виде трех цифр
УУУУ
Год в виде четырех цифр
УУУУУ
Год в виде пяти цифр
z
Смещение часового пояса в часах
zz
Смещение часового пояса в часах. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
zzz
Смещение часового пояса в часах и минутах
:
Разделитель для составляющих значения времени
/
Разделитель для составляющих значения даты
%fmt
Стандартный формат, соответствующий спецификатору формата fmt
Глядя на табл. 22.8, можно заметить, что символы-заполнители d, f, g, m, М, s и t выполняют ту же функцию, что и аналогичные символы-заполнители из табл. 22.7. Вообще говоря, если один из этих символов указывается отдельно, то он интерпретируется как спецификатор формата. В противном случае он считается символом-заполнителем. Поэтому если требуется указать несколько таких символов отдельно, но интерпретировать их как символы-заполнители, то перед каждым из них следует поставить знак %.
В приведенном ниже примере программы демонстрируется применение нескольких форматов даты и времени.
// Отформатировать дату и время, используя специальные форматы, using System;
class CustomTimeAndDateFormatsDemo { static void Main {
DateTime dt = DateTime.Now;
Console.WriteLine("Время: {0:hh:mm tt}", dt) ;
Console.WriteLine("Время
Console.WriteLine("Дата: {0:ddd МММ dd, yyyy}", dt) ;
Console.WriteLine("Эра: {0:gg}", dt) ;
Console.WriteLine("Время в секундах: " +
"{0:HH:mm:ss tt}", dt) ;
Console.WriteLine("День месяца в формате m: {0:m}", dt);
Console.WriteLine("Минуты в формате m: {0:%m}", dt);
Вот к какому результату приводит выполнение этой программы (опять же все зависит от конкретных настроек языковых и региональных параметров локализации базового программного обеспечения).
Время: 11:19 AM
Время 24-часовом формате: 11:19 Дата: Thu Feb 11, 2010 Эра: A.D.
Время в секундах: 11:19:40 AM День месяца в формате m: February 11 Минуты в формате ш: 19
Форматирование промежутков времени
Начиная с версии 4.0, в среде .NET Framework появилась возможность форматировать объекты типа Time Span — структуры, представляющей промежуток времени. Объект типа Time Span может быть получен самыми разными способами, в том числе и в результате вычитания одного объекта типа DateTime из другого. И хотя форматировать объекты типа Time Span приходится нечасто, о такой возможности все же стоит упомянуть вкратце.
По умолчанию в структуре Time Span поддерживаются три стандартных спецификатора формата даты и времени: с, g и G. Они обозначают инвариантную форму промежутка времени, короткую и длинную форму с учетом культурной среды соответственно (последняя форма всегда включает в себя дни). Кроме того, в структуре Time Span поддерживаются специальные спецификаторы формата даты и времени, приведенные в табл. 22.9. Вообще говоря, если один из этих спецификаторов используется в отдельности, его нужно предварить символом %.
Таблица 22.9. Символы-заполнители специального формата промежутка времени
Символ-заполнитель
Назначение
d, dd,
ddd, dddd,
Целые дни. Если указано несколько символов-заполнителей
ddddd,
dddddd,
ddddddd
d, то отображается, по крайней мере, указанное количество цифр с начальными нулями, если требуется
h, hh
Часы (не считая тех, что составляют часть целого дня). Если указано hh, то отображаются две цифры с начальными нулями, если требуется
m, mm
Минуты (не считая тех, что составляют часть целого часа). Если указано mm, то отображаются две цифры с начальными нулями, если требуется
s, ss
Секунды (не считая тех, что составляют часть целой минуты). Если указано ss, то отображаются две цифры с начальными нулями, если требуется