我正在使用 QTP(因此是 VBScript),我似乎对 CDate 函数有问题。
当我在马来西亚的同事使用它时,没有问题。当我在西班牙使用它时,出现以下错误。
现在我要问的是这个函数或任何其他相关的问题,如不同语言环境之间的 FormatDateTime 是否存在任何已知问题。
有人知道这个吗?
提前致谢。
CDate() 尝试将其输入转换为日期,同时考虑到区域设置。看:
>> SetLocale "en-us"
>> WScript.Echo GetLocale()
>> WScript.Echo 1, CDate("1 dec 2011")
>> WScript.Echo 2, CDate("1 dez 2011")
>>
1033
1 01.12.2011
Error Number: 13
Error Description: Type mismatch
>> SetLocale "de"
>> WScript.Echo GetLocale()
>> WScript.Echo 3, CDate("1 dez 2011")
>> WScript.Echo 4, CDate("1 dec 2011")
>>
1031
3 01.12.2011
Error Number: 13
Error Description: Type mismatch
>>
“en-us”下的 CDate() 理解“dec”,但在“dez”上窒息;“de”与“dez”一起使用,但不适用于“dec”。
解决您的问题的最小影响策略可能是通过使用 SetLocale() 和一些大棒(输入验证)来针对草率的数据输入人员强制执行“一个区域设置”。
错误说明了问题。todateObject.GetROProperty("value")
包含CDate不能识别为日期的值。
您需要首先确定返回的内容todateObject.GetROProperty("value")
,然后确保可以将其转换为日期。
您可能需要考虑使用DateSerial而不是 CDate 创建日期,以避免文化差异引起的问题。如果是这种情况,根据您的情况,您可能需要为日、月和年提供单独的字段,以确保顺序始终正确。