区域识别函数

不同的区域在显示日期、时间、数字、货币和其它信息时有不同的惯例。但是,没有必要了解用户所在区域的所有惯例。这是因为在 Visual Basic 中的一些函数使用用户的系统区域运行时自动确定惯例,系统区域可以使用操作系统提供的控制面板来设置。这些函数被称为区域识别函数。

Print 方法

尽管 Print 方法为不同的输出格式提供了很少的灵活性,但它确实使用了用户的系统区域。在以下示例中,将用正确的短日期格式打印日期,将用正确的小数点打印数字,将用正确的符号打印货币。

MyDate = #11/24/1997#
MyNumber = 26.5
Money = 1636.32
MyMoney = Format(Money, "###,###.##")
Debug.Print MyDate, MyNumber, MyMoney

此代码运行在英语/美国的区域时,以下输出将出现在立即窗口中。

11/24/1997   26.5   1,636.32

此代码运行在德语/德国的区域时,以下输出将出现在立即窗口中。

24/11/1997   26,5   1.632,32

详细信息 请参阅《语言参考》的“Print 方法”。

Format 函数

Format 函数可以接受格式代码,但格式代码总是产生相同的输出而不考虑用户的区域。例如,格式代码“mm-dd-yy”对于比利时的用户不适用,因为他们的日在月之前。

为了增加更多的灵活性,Format 函数还提供了命名格式可以在运行时自动决定使用何种转换,包括 General Date, Long Date, Short Date 和 Long Time。使用命名格式产生基于用户的系统区域的输出。命名格式甚至可以采用用户本国语言的输出,包括月名和星期名。如下例所示:

MyDate = #8/22/1997 5:22:20 PM#
NewDate1 = Format(MyDate, "Medium Date")
NewDate2 = Format(MyDate, "Short Date")
NewDate3 = Format(MyDate, "Long Date")
NewDate4 = Format(MyDate, "General Date")
Debug.Print NewDate1, NewDate2, NewDate3, NewDate4

代码运行在英语/美国区域时,下列输出显示在立即窗口中:

22-Aug-97 8/22/97      Monday, August 22, 1997   8/22/97 5:22:20 PM

代码运行在法语/法国区域时,下列输出显示在立即窗口中:

22-ao鹴-97   22/08/97      lundi 22 ao鹴 1997      22/08/97 17:22:20f

详细信息 请参阅《语言参考》里的“Format 函数”。