Маска времени
Маска времени позволяет выполнять преобразование времени в строку и наоборот в различных видах.
Компоненты маски соответствуют часам, минутам, секундам и сотым секунды. Компоненты маски могут указываться слитно или через разделитель. Допустимы следующие символы для компонентов маски:
- h – часы с лидирующем нулем;
- H – часы с лидирующем пробелом;
- m – минуты с лидирующем нулем;
- M – минуты с лидирующем пробелом;
- s – секунды с лидирующем нулем;
- S – секунды с лидирующем пробелом;
- i – сотые секунды с лидирующем нулем;
- I – сотые секунды с лидирующем пробелом.
Маска по умолчанию выглядит как:
hh:mm:ss:ii
Разделитель по умолчанию ":" (двоеточие) используется при задании маски. Маска и разделитель по умолчанию соответствуют представлению констант типа время в языке И++.
Если в маске нет ни одного двоеточия, то она обрабатывается как слитная маска. Например, "hhmmss" - допустимая слитная маска. Компоненты слитной маски определяются сменой символа компонента, а не наличием разделителя. При преобразованиях с использованием слитной маски указанный разделитель игнорируется.
Общие требования к компоненту маски:
- Компонент не должен быть пустым, т.е. не допускается подряд идущие разделители. Например, "hh::ss" - ошибка.
- Длина любого компонента не должна быть меньше двух символов. Например, "hh:m:ss" - ошибка.
- Компонент должен состоять только из допустимых в маске символов (см. выше). Например, "hh:xx:zz" - ошибка.
- Компонент должен состоять из идентичных символов. Например, "hH:mm:ss" или "hm:mh:ss" - ошибка.
- Компонент не должен дублироваться в маске. Например, "hh:mm:mm" или "hh.HH.mm" - ошибка.
Если длина компонента превышает 2, то дополнительные позиции заполняются нулями (нижний регистр) или пробелами (верхний регистр). Например, для маски "HHH.MMM.SSSS" время 02:12:45:77 будет преобразовано в " 2: 12: 45", а для маски "hhh.mmm.ssss" в "002:012:0045". При обратном преобразовании из строки во время лидирующие нули и пробелы роли не играют.
Разделителем может быть указан любой символ, кроме символов компонентов маски. Например, для маски "hh:mm" и разделителя "-" время 02:12:45:77 будет представлено как "02-12". Если разделитель - пустая строка, то используется разделитель по умолчанию ":" (двоеточие). Если длина указанного разделителя более одного символа, то используется только первый символ.