第一章:VB.NET函数——格式化函

四、格式化函数

<一>日期时间格式化函数

语法:FormatDateTime (exp As DateTime [, namedformat As DateFormat ]) As String

说明:依照参数namedformat指定的格式将参数exp的日期格式化,选择性参数namedformat属于DateFormat枚举,成员如下:

(1)DateFormat.GeneralDate:显示日期和(或)时间。若有日期部分,则会显示为简短日期;若有时间部分,则会显示为完整时间;若两者皆有,则会全显示。

(2)DateFormat.LongDate:使用计算机的区域选项中所指定的完整日期格式显示日期。

(3)DateFormat.ShortDate:使用计算机的区域选项中所指定的简短日期格式显示日期。

(4)DateFormat.LongTime:使用计算机的区域选项中所指定的时间格式来显示日期。

(5)DateFormat.ShortTime:使用24小时制(hh : mm)来显示时间。

如:FormatDateTime (#2/14/2002#, DateFormat.LongDate)会返回“2002年2月14日”;

FormatDateTime (#2/14/2002#, DateFormat.ShortDate)会返回“2002/2/14”。

<二>货币值格式化函数FormatCurrency ()

语法:FormatCurrency (exp As Object [, numdigitsafterdecimal As Integer [, leadingdigit As Tristate [,negparen As Tristate [,groupDigits As TriState ]]]]) As Strong

说明:将参数exp设置成指定的货币格式,此货币值使用控制面板中区域选项所定义货币符。选择性参数numdigitsafterdecimal表示要显示小数点后面几们数,-1为采取系统默认值;选择性参数leadingdigit表示是否要在小于1的值前面加上0,属于Tristate枚举,成员如下表所示;选择性参数negparen表示是否要将负数用括号起来,属于Tristate枚举;选择性参数groupdigits表示加上分隔符来组合数字,属于Tristate枚举。例如: FormatCuurnct (12345.789, 2)会返回NT$123,456.79

Tristate枚举成员

Tristate.True

True

Tristate.False

False

Tristate.UseDefault

区域选项的设置

<三>数值格式化函数FormatNumber ()

语法:FormatNumber (exp As Object [, numdigitsafterdecinnal As Integer [,leadingdigit As Tristate [,negparen As Tristate [,Groupdigits As Tristate ]]]] As String

说明:将参数exp设置成指定的数值格式。选择参数同上(即同货币值函数参数)

<四>百分比格式化函数FormatPerCent ()

语法:FormatPerCent (exp As Object [, numdigitsafterdecinnal As Integer [,leadingdigit As Tristate [,negparen As Tristate [,Groupdigits As Tristate ]]]] As String

说明:将参数exp设置成指定的百分比格式(乘以100)选择性参数同上。

<五>格式化函数Format ()

语法:Format (exp As Object [, style As String]) As String

说明:根据style指定格式将exp格式化。选择性参数style为任何预先定义的格式化表达式或用户自定义的格式化表列,如下两个表:

预定义的格式

说明

General Date或G

显示日期/时间,例如Format (Now ,”General Date”)会返回系统目前的日期/时间,好比是2002/1/31 下午12: 26: 03。若没有分数部分,则只会显示日期;若没有整数部分,则只会显示时间。

Long Date或D

以系统的完整日期格式显示日期。如Format (Now, “Long Date”)为: 2006年1月28日

Medium Date

以应用程序版本的中等日期格式显示。如Format (Now, “Medium Date”)返回2006年1月28日

Short Date或 d

以系统的短日期格式显示时间。如 Format (Now, “Short Date”)返回2006/1/28

Long Time或T

以系统的完整时间格式显示时间,如Format (Now, “Long Time”)返回12:00:00

Medium Time

以时分及上午下午显示12小时时间格式的时间。

Short Time或T

以24小时的时间格式显示时间。

f

根据控件面板的区域选项设置的格式来显示完整日期及简短时间。

F

根据控件面板的区域选项设置的格式来显示完整日期及完整时间

g

根据控件面板的区域选项设置的格式来显示日期及时间。

M,m

显示几月几日。

R,r

根据格林威治标准时间(GMT)来格式化日期及时间。

s

根据可排序的索引来格式化日期及时间。

u

根据GMT可排序的索引来格式化日期及时间。

U

根据GMT以完整日期及完整时间来格式化时间。

y

根据年份及月份来格式化日期。

GeneralNumber

显示的数字没有千分位符号。如Format (12345.6789, “GeneralNumber”)返回: 12345.6789。

Currency

显示的数值有千分位符号,小数点右边会显示两位。如Format (12345.678, “Currency”)返回: 12,345.68。

Fixed

小数点左边至少一位数,右边两位数。例如Format (12345.678, “Fixed”)返回1234567.89%。

Standard

显示的数值有千分位号,小数点左边至少有一位数,右边有两位数。如Format (12345.6789, “Standard”)返回12,345.68。

Percent:

以百分比格式显示,小数点右边有两位数,例如 Format (12345.6789, “Percent”)返回1234567.89%。

Scientific

使用标准科学符号。如 format (12345.6789, “Scientific”)返回1.23E+04。

D或d

将数值显示为含有小数点格式的数值(十进制),只有整数数类型才支持此项。如Format (4096, “D”)返回4096

X或x

将数值显示为含有十六进制的数值,只有整数数值类型才支持此项。如 Format (4096, “X”)返回: 1000。

Yes/No

或数字为0,显示NO,否则显示YES。如 Format (12345.6789, “Yes/NO”)返回YES。

True/False

若数字为0,显示Flase,否则显示Yes。如 Format (12345.6789, “True/False”返回True.

On/Off

若数字为0,显示Off,否则显示On

用户定义的数值格式化字符

说明

# 和 0

# 或0表示一个数字,# 或0的个数决定了数值显示的长度。如果显示的数值的长度小于 # 或 0 的长度, 对于# 符号:无论是整数部分还是小数部分都不补零;对于0符号:整数在左端补零,小数在右端补零。如果显示的数值的长度大于 # 或 0的长度,对于 # 符号和 0 符号:整数部分都按数值的实际位数输出,小数部分都只显示到有有#号的位置,最后一位四舍五入。

.

. 用于显示小数点。小数点与格式符 # 和 0 结合使用,用于指定小数的位数,多余的位数按四舍五入处理。如Format(123.456, “0000.00”)结果为:0123.46

,

(逗号)用来在数字中插入千分号。即从数值的小数点靠近左边的第一位开始,每3位插入一位千分号。逗号可放在小数点左边的任何位置。如

Format(1234567.893,”####, ##”.##”)结果为1,234,567.89。

%

% 用于输出百分号。把数值乘以100在后面加上百分号。通常放在格式字符串的后面用来输出百分号。如Format(12.456, “###.##%”) 结果为:1245.6

$

$放在格式字符串起始位置,用于美元符号输出,可在显示的数值前面加$符号。如Format(1234.567,”$###.##”)结果为:$1234.57

+或-

+或-通常放在格式字符串的前面。用来输出正号或负号。如Format(3456.012,”+###.##”)结果为+3456.01;Format(3456.012,”-###.##”)

E+或E-

E+或E- 用于数值的指数形式。如 Format(3456.012,”#.###E+”)结果为:3.456E+03

Format(0.01234, "#.###E-00")结果为:1.23E-02。

:或 /

:为时间分隔符;/ 为日期分隔符。

“”

将双引号“”内的字符串显示出来。

M、MM、MMM、MMMM

M是以没有零开头地显示(1~12);MM以零开头的数字来显示(01!12);MMM是以简写表示月;MMMM是以命名表示月。如:Format(#1/13/2006#, “MMMM”)返回“一月”

d、d d、d d d、d d d d

d以没有零开头的数字来显示;d d是以有零开头的数字来显示;d d d是以简写来表示天;d d d d是以命名来表示天。

gg

显示纪年。例如:Format(#1/32006#,”gg”)返回“公元”

H、HH、h、hh、m、mm、s、ss

H是以24小时制,没有零开头的数字将小时显示成数字(0~23);HH是以24小时制,有零开头的数字来显示小(0~23);h是以12小时制,没有零开头的数字将小时显示成数字;hh是以12小时制,有零开头的数字来显示小时;m是以没有零开头的数字来显示分(0~59);mm是以有零开头的数字来显示分(00~59);s是以没有零开头的数字来显示秒(0~59);ss是以有零开头的数字来显示秒(00~59)。如Format(#02:31:50 pm#, “hh:mm:ss”)返回02:31:50;Format(#02:31:50 pm#, “HH:mm:ss”) 返回14:31:50 。

f

f显示秒数的小数部分。如f f会显示至百分之一秒; f f f会显示至万分之一秒,最多可以使用7个f符号。

t

使用12小时制,同时在正午之前的任何小时加上大写A,在正午与11:59 pm之前的任何小时加上pm。

t t

使用12小时制,同时在正午之前任何小时加上大写Am;在下午与11:59 pm之前的任何小时加上pm。

y、y y、y y y、y y y y

y是以一位数来表示年(0~9);y y是以两位数来表示(00~99);y y y和y y y y是以四位数来表示年。如Format(#1/3/2006#, "yyyy-MMMM-dd")返回2006-一月-03

:2、22、222

:2是显示时区差,而且还需要加上前缀零(如-8);22是显示时区时差,而且要加上前缀零(如-08);222是显示完整的时区差(如-08:00)

:/ %

:是时间分割符;/是日期分割符;%是用来指示应将后面的字符当作一字母格式读取,而不管是否还跟着任何字母。