'Convert an ISO8601 date string (yyyy-MM-ddTHH:mm:ss:SSSZ) to a date (long)
'Returns 0 on error
Sub StrToDateISO8601(sDate As String) As Long
Dim lRet As Long
Dim s As String
Dim sFormat As String
Try
'Get rid of the 'T'
s = sDate.Trim
s = s.SubString2(0,10) & " " & s.SubString(11)
If s.Length = 19 Then
sFormat = "yyyy-MM-dd HH:mm:ss"
Else If s.Length = 23 Then
sFormat = "yyyy-MM-dd HH:mm:ss:SSS"
Else
sFormat = "yyyy-MM-dd HH:mm:ss:SSSZ"
End If
DateTime.DateFormat = sFormat
lRet = DateTime.DateParse(s)
Catch
lRet = 0
End Try
Return lRet
End Sub