VBScript是否具有DateTime.TryParse等效项?

VBScript是否具有DateTime.TryParse等效项?,datetime,vbscript,variant,tryparse,Datetime,Vbscript,Variant,Tryparse,给定一个变体,VBScript是否具有C#的DateTime.TryParse方法的等效项?将IsDate(stringDate)与CDate(stringDate)结合使用 IsDate("pony") ' Returns false 使用IsDate()函数确定日期是否可以转换为日期或时间 CDate()识别日期文字和时间文字,以及一些在可接受日期范围内的数字。将数字转换为日期时,整个数字部分将转换为日期。数字的任何小数部分都转换为一天中的某个时间,从午夜开始 CDate根据系统的区域设置

给定一个变体,VBScript是否具有C#的DateTime.TryParse方法的等效项?

将IsDate(stringDate)与CDate(stringDate)结合使用

IsDate("pony") ' Returns false
使用IsDate()函数确定日期是否可以转换为日期或时间

CDate()识别日期文字和时间文字,以及一些在可接受日期范围内的数字。将数字转换为日期时,整个数字部分将转换为日期。数字的任何小数部分都转换为一天中的某个时间,从午夜开始

CDate根据系统的区域设置识别日期格式。如果以非公认日期设置的格式提供,则可能无法确定日、月和年的正确顺序。此外,如果长日期格式还包含星期几字符串,则无法识别该格式

下面的示例使用CDate函数将字符串转换为日期

MyDate = "October 19, 1962"   ' Define date.
MyShortDate = CDate(MyDate)   ' Convert to Date data type.
MyTime = "4:35:47 PM"         ' Define time.
MyShortTime = CDate(MyTime)   ' Convert to Date data type.

我认为,挑战在于使解决方案独立于当地区域设置,这在许多情况下是一个先决条件

我找到的唯一方法是使用DateSerial(),因为vbs中不存在ParseExact()

我认为下面的代码可以做到这一点。应该有一个更平滑的方法来添加时间成分,但我没有找到它。 当然,这段代码只包含一种输入格式,但这就是我现在所需要的

fixedDate = fixmydate("27-01-2016 18:00:00") 


Function fixmydate(mydate)  
    sday = cint(Mid(mydate,1,2))
    smonth = cint(Mid(mydate,4,2))
    syear = cint(Mid(mydate,7,4))

    shour = cint(Mid(mydate,12,2))
    sminute = cint(Mid(mydate,15,2))
    ssecond = cint(Mid(mydate,18,2))

    sdate = DateSerial(syear,smonth,sday)
    sdate = dateadd("h",shour,sdate)
    sdate = dateadd("n",sminute,sdate)
    sdate = dateadd("s",ssecond,sdate)


    fixmydate = sdate

End Function