Search code examples
datetimevbscriptasp-classiciso8601

VBScript ISO8601


In VBScript, does FormatDateTime have ISO 8601 support?

If not, how would I write such function with it?

For example:

Response.Write FormatAsISO8601(#05/04/2011#)

Function FormatAsISO8601(datetime)
    ...
End Function

Solution

  • Here is the specific code I needed from Chris' class, a bit more optimized:

    Public Function ToIsoDateTime(datetime) 
        ToIsoDateTime = ToIsoDate(datetime) & "T" & ToIsoTime(datetime) & CurrentTimezone
    End Function
    
    Public Function ToIsoDate(datetime)
        ToIsoDate = CStr(Year(datetime)) & "-" & StrN2(Month(datetime)) & "-" & StrN2(Day(datetime))
    End Function    
    
    Public Function ToIsoTime(datetime) 
        ToIsoTime = StrN2(Hour(datetime)) & ":" & StrN2(Minute(datetime)) & ":" & StrN2(Second(datetime))
    End Function
    
    Private Function StrN2(n)
        If Len(CStr(n)) < 2 Then StrN2 = "0" & n Else StrN2 = n
    End Function