На этом шаге мы рассмотрим использование различных видов форматирования.
Стандартное форматирование состоит в применении набора символов форматирования, представленных в таблице 1. Если задано стандартное форматирование даты, а символа форматирования нет в таблице, которая хранится в соответствующем классе, то система выдаст ошибку. Вид результата форматирования (т. е. строка после форматирования) зависит от Региональных установок вашего компьютера, задаваемых через панель управления. Компьютеры с различными Региональными установками будут, естественно, выдавать разные результаты форматирования.
Форматный символ | Описание |
---|---|
d | Так задают день месяца. Число, состоящее из одной цифры, не будет иметь впереди нуля |
dd | Так задают день месяца, но в этом случае число, состоящее из одной цифры, будет иметь впереди ноль |
ddd | При таком форматировании станут выдаваться не названия дней недели, а их аббревиатуры |
dddd | При таком форматировании станут выдаваться полные названия дней недели |
M | Месяц будет выдаваться в виде числа. Месяц, представленный одной цифрой, не будет иметь впереди нуля |
MM | Месяц будет выдаваться в виде числа. Месяц, представленный одной цифрой, будет иметь впереди ноль |
МММ | При таком форматировании станут выдаваться не названия месяцев, а их аббревиатуры |
МММM | При таком форматировании будет выдаваться полное название месяца |
y | При таком форматировании будет выдаваться год, но без выдачи века. Если год представляется одной цифрой (например, 7-й год), то перед ним нуля не будет |
yy | При таком форматировании будет выдаваться год, но без выдачи века. Если год представляется одной цифрой, то в выводе перед ним появится ноль |
yyyy | При таком форматировании будет выдаваться год из четырех цифр, включая век |
h | При таком форматировании выводится время в 12-часовом формате. Одноразрядное значение времени не будет иметь впереди нуля |
hh | Такой же смысл, что и для h, но с нулем впереди числа |
H | При таком форматировании выводится время в 24-часовом формате. Одноразрядное значение времени не будет иметь впереди нуля |
HH | Такой же смысл, что и для Н, но с нулем впереди числа |
m | Так выводятся минуты. Одноразрядное значение не будет иметь впереди нуля |
mm | Такой же смысл, что и для m, но с нулем впереди числа |
s | Так выводятся секунды. Одноразрядное значение не будет иметь впереди нуля |
ss | Такой же смысл, что и для s, но с нулем впереди числа |
f | Так выводятся доли секунды. Если секунда - это одноразрядное число, то лишние цифры отсекаются |
ff | Так выводятся доли секунды. Если секунда - это двухразрядное число, то лишние цифры отсекаются |
\c | Здесь "с" - это любой символ. Чтобы вывести обратную косую черту (бэкслэш), надо использовать символы "\\" |
Пример форматирования дат приведен в приложении, форма которого в режиме дизайна приведена на рисунке 1, в режиме исполнения - на рисунке 2, а текст обработчиков - в примере ниже.
Рис.1. Форма приложения в режиме дизайна
Рис.2. Форма приложения в режиме выполнения
Текст обработчиков:
// Кнопка "Выход" private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { Close(); } // Кнопка "Форматировать дату" private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { DateTime^ dt = DateTime(); String^ s; //объявлен массив строк с именем format и инициализирован форматами array <String^>^ format = {"d/M/y", "dd/MM/yy", "dd/MM/yyyy", "d MMM yyyy \'г\', ddd", "d MMMM yyyy \'г\', dddd", "dd/MM/yy HH::mm", "ddd, MMM d \"'\"yy"}; dt = dateTimePicker1->Value; //здесь будет выбранная дата for ( int i = 0; i < format->Length; i++ ) { //CurrentInfo - учет национальных особенностей // (см. Региональные установки на панели управления) s = dt->ToString( format[ i ], DateTimeFormatInfo::CurrentInfo ); //перевод даты в строку с одновременным форматированием listBox1->Items->Add(format[ i ]); listBox2->Items->Add(s); } }
Если нужны региональные настройки, то в перечень используемых пространств h-файла надо добавить строку:
using namespace System::Globalization; //для даты
На следующем шаге мы приведем некоторые сведения о работе с датами.