将DateFormat与Date字符串进行比较

时间:2018-07-31 12:13:15

标签: xml vbscript hp-uft

我有一个Date =“ 20180719”,该日期是我从XML文件中取出的。我有一个下拉字段“制造日期”(Windows应用程序),其格式为“ YYYYMMDD ”。

现在,我必须验证“ 日期”是否采用“制造日期”中提供的正确的日期格式

有没有可以将Date转换为DateFormat的函数?

谢谢!

1 个答案:

答案 0 :(得分:0)

XML文件应具有用于验证的架构,以便可以捕获格式错误的日期(字符串!)。 如果您的XML可能包含意外情况,则必须检查年/月/日部分的合理性。在代码中:

Dim aT : aT = Split("20180719 19072018 07192018 20181212 20181313 11112233 33331122")
Dim sD
For Each sD in aT
    WScript.Echo sD, verdict(sD)
Next

' "YYYYMMDD" format hard coded, using DateSerial to check the plausibility of the y-m-d-parts
Function verdict(sD)
  verdict = "invalid"
  If 8 = Len(sD) Then
     Dim nY : nY = CInt(Left(sD, 4))
     Dim nM : nM = CInt(Mid(sD, 5, 2))
     Dim nD : nD = CInt(Right(sD, 2))
     Dim dD : dD = DateSerial(nY, nM, nD)
     If sD = Year(dD) & Right(100 + Month(dD), 2) & Right( 100 + Day(dD), 2) Then verdict = "ok"
  End If
End Function

输出:

cscript 51613138.vbs
20180719 ok
19072018 invalid
07192018 invalid
20181212 ok
20181313 invalid
11112233 invalid
33331122 ok

此外,您可以对年份进行范围检查(使用数字nY变量)。但是,尚不能确定某些边境案件(“ 20180102”的作者是否想指定是1月还是2月)?