Поделиться через


Функция Format (для пользователей Visual Basic 6.0)

Обновлен: Ноябрь 2007

В версии Visual Basic 2008 функция Format теперь соответствует спецификации общеязыковой среды выполнения (CLR) по форматированию данных. Дополнительные сведения о форматировании данных в .NET Framework см. в разделе Типы форматирования.

Следующие разделы посвящены детальному рассмотрению изменений в Visual Basic 2008, касающихся пользовательских форматов даты и времени, числовых и строковых форматов.

Пользовательские форматы даты и времени

Visual Basic 6.0

Для отображения даты в полном и кратком форматах в Visual Basic 6.0 используются спецификаторы формата "ddddd" или "dddddd". Спецификаторы DayOfWeek ("w") и WeekOfYear ("ww") отображают день, который принято считать первым днем недели, и неделю, которая считается первой неделей года. Строчная буква "m" отображает месяц как число без ведущего нуля. Спецификатор Quarter ("q") отображает квартал года как число от 1 до 4.

Для отображения минут в виде числа с ведущими нулями или без них используются спецификаторы формата "Nn" или "N" соответственно. Знаки "Hh" отображают час в виде числа с ведущим нулем, а "ttttt" — полное время. Чтобы отобразить рядом со значением часа прописные или строчные буквы "A" или "P", указывающие время до или после полудня, используется один из следующих спецификаторов: "AM/PM", "am/pm", "A/P", "a/p" или "AMPM".

Спецификатор Short Date/Time ("c") отображает дату и время в формате "ddddd ttttt".

Visual Basic 2005

В Visual Basic 2008 спецификаторы "ddddd" и "dddddd" ведут себя так же, как и спецификатор "dddd", отображая полное название дня. Они не отображают короткий и полный форматы даты. Режимы DayOfWeek ("w") и WeekOfYear ("ww") не поддерживаются. Вместо них можно использовать функцию DatePart, как показано в следующем примере.

Format(DatePart(DateInterval.Weekday, Now))


...


Format(DatePart(DateInterval.WeekOfYear, Now))

Спецификаторы "M" и "m" имеют разное значение, поэтому они учитывают регистр. Верхний регистр ("M") используется только для обозначения месяца в области даты формата даты и времени, а строчная буква "m" — только для минут в области времени.

Спецификатор формата Quarter не поддерживается. Вместо них можно использовать функцию DatePart, как показано в следующем примере.

Format(DatePart(DateInterval.Quarter, Now))

Для отображения минут в виде числа с ведущими нулями или без них используются спецификаторы "m" или "mm", соответственно. Формат "ttttt" больше не поддерживается. Спецификаторы "H" и "h" имеют разное значение, поэтому они учитывают регистр. Верхний регистр "H" используется только для 24-часового формата, а нижний регистр "h" — для 12-часового формата. Форматы AM/PM заменены "t" и "tt".

Спецификатор "c" используется для формата валюты. Для форматирования даты и времени используйте "g" в качестве спецификатора короткого формата даты/времени и "G" в качестве спецификатора общего формата даты/времени. Оба спецификатора, "g" и "G", используют текущую настройку языкового стандарта для определения соответствующих форматов даты и времени.

Пользовательские числовые форматы

Visual Basic 6.0

В Visual Basic 6.0 функция Format при необходимости перед форматированием преобразует строки в числа. Функция Format отображает завершающую десятичную точку, если отсутствует дробная часть.

Visual Basic 6.0 поддерживает четыре раздела в строке форматирования. Они разделяются точками с запятой (;) и определяют форматирование положительных, отрицательных, нулевых и пустых значений соответственно. Отрицательные числа с пустым отрицательным разделом в строке форматирования отображаются как пустая строка.

Форматирования научного представления поддерживает заполнители "0" и "#", следующие за экспонентой.

Visual Basic 2005

В версии Visual Basic 2008 функция Format не преобразует строки в числа до форматирования. В первом аргументе следует передавать число, а не строку. В следующем примере первая строка кода не дает ожидаемого результата в Visual Basic 2008, а вторая строка дает ожидаемый результат.

MsgBox(Format("1.234", "#.#"))   ' Displays "#.#".


...


MsgBox(Format(CSng("1.234"), "#.#"))   ' Displays "1.2".

Завершающие десятичные точки не отображаются, как показано в следующем примере.

MsgBox(Format(123, "###."))   ' Displays "123"


...


MsgBox(Format(123, "###.#"))   ' Displays "123"

В Visual Basic 2008 поддерживаются три раздела в строке форматирования, для положительных, отрицательных и нулевых значений. Если ненулевая величина округляется до нуля в соответствии с первым или вторым разделом форматирования, то она форматируется согласно указаниям третьего раздела. Отрицательные числа с пустым разделом форматирования отрицательных чисел отображаются в виде знака минус, как показано в следующем примере.

MsgBox(Format(-1, ";"))   ' Displays "-".

Форматирования научного представления поддерживает только заполнитель "0" для цифр; заполнитель "#" не поддерживается. В следующем примере первая строка кода не дает ожидаемого результата в Visual Basic 2008, а вторая строка дает ожидаемый результат.

MsgBox(Format(123, "#e+#"))   ' Displays "12e+3".


...


MsgBox(Format(123, "#e+0"))   ' Displays "1e+2".

Формат строки

Visual Basic 6.0

В Visual Basic 6.0 можно создавать выражения для пользовательских строк формата со спецификаторами @, &, <, > и !.

Visual Basic 2005

В версии Visual Basic 2008 прекращена поддержка выражений для пользовательских строк формата, поэтому спецификаторы @, &, <, > и ! не имеют смысла и больше не поддерживаются.

См. также

Основные понятия

Дата и время (для пользователей Visual Basic 6.0)

Сводка изменений поддержки элементов программирования

Ссылки

Функция Format

Функция DatePart (Visual Basic)