VBScript:用于初始化的日期格式

Jér*_*ôme 0 vbscript

在VBS脚本中,我需要使用日期初始化变量.

在我的国家/地区,我们通常会使用以下格式指定日期:日月

这是我在VBS脚本中尝试做的事情:

Date = #07-06-1973#
MsgBox FormatDateTime(Date, vbLongDate)
Run Code Online (Sandbox Code Playgroud)

但是我得到的日期是7月6日,我期待6月7日!

现在,因为似乎第一个数字代表月份,这是我尝试做的:

Date = #13-06-1973#
MsgBox FormatDateTime(Date, vbLongDate)
Run Code Online (Sandbox Code Playgroud)

但现在,第一个数字代表了一天!(我得到以下日期:6月13日)

我没有找到强制日期格式的方法,因此没有更多的歧义.

Hel*_*len 5

严格来说,VBScript仅支持美国和ISO格式的日期文字:

' US format:
Date = #10/19/2009#

' ISO format:
Date = #2009-10-19#
Run Code Online (Sandbox Code Playgroud)

但是,日期分隔符可以是不同的(斜杠,短划线,空格等),并且VBScript引擎还可以识别包含缩写月份名称(#Oct 19, 2009#)的日期和具有交换日期部分(#2009 19 10#)的非模糊日期.后者解释了为什么#13-06-1973#在你的第二个例子中被认为是6月13日:数字13超出了可接受的月份范围(1-12),所以它被解释为日期部分.

如果要以区域格式指定日期(即区域和语言选项中指定的格式),可以使用该CDate函数转换日期字符串,例如:

' Russian format
Date = CDate("19.10.2009")
Run Code Online (Sandbox Code Playgroud)

但使用美国和ISO日期文字更可靠和首选.