从 Active Server Page 访问时日期/时间格式的行为不同(2)_动易Cms教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!


当没有用户实际登录服务器时,IIS 将从上述注册表位置读取日期/时间格式以及其他区域设置,而不像在 Windows NT 4.0 中一样从 Locale.nls 文件中读取。

IIS 5.0(Windows 2000 Service Pack 2 和更高版本)

在 Windows 2000 Service Pack 2 (SP2) 中,默认行为如以上所述。但是,您也可以自定义设置:您可以更改基 OLEAUT 组件,也可以更改 IIS 使其答应在 OLEAUT 中进行此更改。

您可以在全局设置 OLEAUT 的注册表项。这不会重写通过使用公开的调用来显式设置该选项的进程。因此,假如您设置以下 IIS 值,则将重写 OLEAUT 设置。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLEAUT
VarConversionLocaleSetting = 0,1,2 (DWORD)
备注:OLEAUT 项可能不存在。假如它不存在,则必须先创建该项。

您也可以设置 IIS 的值,它也会重写 OLEAUT 的任何全局设置。此外,无论是否设置该注册表项,IIS 都将调用此 OLEAUT 应用程序编程接口 (API)。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters
SetVarConversionLocaleSetting
= 0,1,2 (DWORD)
值 0、1 和 2 对于 OLEAUT 和 IIS 都相同,其定义如下:
0 - 默认行为,如以上所述。此格式完全是随机的。它基于设置高速缓存的最后用户或进程。
1 - 此格式基于请求这些值(调用 OLEAUT32.dll 文件)的线程的当前标识。在 IIS 中,这是身份验证用户配置文件设置,因为 IIS 在默认情况下模拟身份验证用户。假如身份验证用户的配置文件不存在或者未加载到注册表中,它将默认为 HKEY_USERS\.default\Control Panel\International 注册表配置单元中的系统默认设置。

您可以如此配置 Web 应用程序:请求这些格式的线程上的模拟用户可以始终是相同的用户;这样,您可以建立一致的格式。例如,假如您在 ASP 页上使用模拟访问,则无论谁登录系统,也无论哪一个实际用户请求该页,都将返回相同的日期格式。
2 - 此格式强制为使用系统默认的区域设置。系统默认设置在重新启动时为计算机设置。若要修改默认系统设置,请选择新的区域设置,然后单击控制面板上的"区域设置"工具中的设置默认值。您必须重新启动计算机,以使此更改生效。在这种情况下,日期格式不是从注册表中读取的,而是从该区域设置的 Locale.nls 文件中读取的。

备注:当更改默认区域设置时,将更改所有区域设置(货币、时间、日期等)。无法修改区域设置中的特定设置。

IIS 5.0 (ASP.NET)

基本行为和基本原则在 ASP.NET 中保持不变。例如,对 Response.Write(Now())Response.Write(Date()) 函数的调用仍像在该操作系统的传统 ASP 中一样工作。但是,ASP.NET 中有非凡的格式函数来格式化日期/时间和其他区域性信息。有关更多信息,请参见 CultureInfoRegionInfoSystem.Globalization 命名空间的 MSDN 文档。

相关信息

假如您需要的区域设置日期/时间格式不同于系统默认区域设置,则最好在 ASP 页中使用以下代码来设置格式:
<%    Session.LCID=2058

'OR use the VBScript SetLocale function to set the locale.

Response.Write FormatDateTime( Now(), 2)

'The Constant 2 is for obtaining the vbShortDate.

%>

查看更多 动易Cms教程  动易Cms模板

来源:模板无忧//所属分类:动易Cms教程/更新时间:2005-09-02
相关动易Cms教程