Format 函数(针对 Visual Basic 6.0 用户)

更新:2007 年 11 月

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”。

短日期/时间说明符(“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 小时时钟。用“t”和“tt”替换 AM/PM 格式。

“c”说明符用于货币格式设置。对于日期/时间格式设置,使用“g”表示短日期/时间说明符,使用“G”表示常规日期/时间说明符。“g”和“G”都使用当前区域设置确定适当的日期和时间格式。

用户定义的数值格式

Visual Basic 6.0

在 Visual Basic 6.0 中,Format 函数必要时在设置格式之前将字符串转换为数字。如果没有小数部分,Format 显示一个尾随小数点。

Visual Basic 6.0 在格式设置字符串中支持四个部分。这些部分由分号 (;) 分隔,分别指定如何设置正、负、零和 null 值的格式。如果格式字符串的负数部分为空,则负数会显示一个空字符串。

科学记数法格式设置支持在指数后使用“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)