CDate和IsDate没有认识到" dd.mm.yyyy"日期格式

时间:2014-07-03 16:05:03

标签: vbscript asp-classic

在服务器2012R2,IIS8上,test.asp

<%=IsDate("16.07.2014")%> returns False
<%=IsDate("16/07/2014")%> returns True
<%=IsDate("16-07-2014")%> returns True
<%=IsDate("16,07,2014")%> returns True
<%=IsDate("16 07 2014")%> returns True

我当然需要第一种格式。 CDate函数在第一个日期也不起作用。

是否与区域设置有关?我试图更改用户个人资料区域设置。然后我将我当前的设置复制到欢迎屏幕和系统帐户,但它没有帮助。

1 个答案:

答案 0 :(得分:2)

SetLocale允许对脚本的行为进行特别说明:

>> WScript.Echo CStr(IsDate("16.07.2014"))
>>
False
>> SetLocale "de-de"
>> WScript.Echo CStr(IsDate("16.07.2014"))
>>
True

更新评论:

这个(希望)更好的样本

>> ol = GetLocale()
>> WScript.Echo 0, ol
>> SetLocale "en-us"
>> WScript.Echo 1, GetLocale()
>> WScript.Echo 2, CStr(IsDate("16.07.2014"))
>> SetLocale "cs-cz"
>> WScript.Echo 3, GetLocale()
>> WScript.Echo 4, CStr(IsDate("16.07.2014"))
>> SetLocale ol
>> WScript.Echo 5, GetLocale()
>>
0 1033
1 1033
2 False
3 1029
4 True
5 1033

演示

  1. “cs-cz”应该有用
  2. 如何保存/恢复当前区域设置