Маска даты
Маска даты позволяет выполнять преобразование даты в строку и наоборот в различных видах.
Компоненты маски соответствуют дню (день в месяце), месяцу и году. Компоненты маски могут указываться слитно или через разделитель. Допустимы следующие символы для компонентов маски:
- d – день с лидирующем нулем;
- D – день с лидирующем пробелом;
- m – месяц с лидирующем нулем;
- M – месяц с лидирующем пробелом;
- y – год с лидирующем нулем;
- Y – год с лидирующем пробелом.
Маска по умолчанию выглядит как:
dd.mm.yyyy
Разделитель по умолчанию "." (точка) используется при задании маски. Маска и разделитель по умолчанию соответствуют представлению констант типа дата в языке И++.
Если в маске нет ни одной точки, то она обрабатывается как слитная маска. Например, "yyyymmdd" - допустимая слитная маска. Компоненты слитной маски определяются сменой символа компонента, а не наличием разделителя. При преобразованиях с использованием слитной маски указанный разделитель игнорируется.
Общие требования к компоненту маски:
- Компонент не должен быть пустым, т.е. не допускается подряд идущие разделители. Например, "dd..yy" - ошибка.
- Длина любого компонента не должна быть меньше двух символов. Например, "dd.m.yyyy" - ошибка.
- Компонент должен состоять только из допустимых в маске символов (см. выше). Например, "xx.zz.yyyy" - ошибка.
- Компонент должен состоять из идентичных символов. Например, "dD.mm.yy" или "dm.md.yy" - ошибка.
- Компонент не должен дублироваться в маске. Например, "mm.mm.yy" или "mm.MM.yy" - ошибка.
Для компонента года разрешенная длина 2, 4 или более. Например, "yyy" или "YYY" - ошибка. Когда длина компонента года равна 2, то значения менее 50 относятся к XXI веку (например, 24 соответствует 2024 году), а значения 50 и более - к XX веку (например, 61 соответствует 1961 году).
Если длина компонента превышает 2 или для года 4, то дополнительные позиции заполняются нулями (нижний регистр) или пробелами (верхний регистр). Например, для маски "DDD.MMM.YYYYY" дата 04.05.2024 будет преобразована в " 4. 5. 2024", а для маски "ddd.mmm.yyyyy" в "004.005.02024". При обратном преобразовании из строки в дату лидирующие нули и пробелы роли не играют.
Разделителем может быть указан любой символ, кроме символов компонентов маски. Например, для маски "yyyy.mm.dd" и разделителя "/" дата 04.05.2024 будет представлена как "2024/05/04". Если разделитель - пустая строка, то используется разделитель по умолчанию "." (точка). Если длина указанного разделителя более одного символа, то используется только первый символ.