VBScript 将值转换为日期

VBScript Convert value to Date

我有一个在开发者机器上运行的 VBScript,其中下面一行代码

CDate("01/09/2017")

returns日期为 2017 年 9 月 1 日。

但是当部署在某些客户端上时,同一行代码 returns 2017 年 1 月 9 日作为日期。

我该如何控制它?

日期字符串很可能是根据各自系统的区域设置进行解析的。为了在具有不同区域设置的系统中获得稳定的结果,您可能需要自己解析日期,例如像这样:

s = "01/09/2017"
a = Split(s, "/")
d = DateSerial(a(2), a(1), a(0))

这个之前有详细介绍;

使用 SetLocale() 选择您希望 VBScript 解释值的方式。

SetLocale(1106) 'Set to United Kingdom
WScript.Echo CDate("01/09/2017")

有关有效的区域设置 ID 值,请参阅 Microsoft Locale ID Values (you also appear to able to use valid IETF language tag codes 以及 en-us 等)