我有一个Date =“ 20180719”,该日期是我从XML文件中取出的。我有一个下拉字段“制造日期”(Windows应用程序),其格式为“ YYYYMMDD ”。
现在,我必须验证“ 日期”是否采用“制造日期”中提供的正确的日期格式。
有没有可以将Date转换为DateFormat的函数?
谢谢!
答案 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月)?