2011-08-01 8 views
4

VBScriptでは、FormatDateTimeはISO 8601をサポートしていますか?VBScript ISO8601

もしそうでなければ、どうすればそのような関数を書くことができますか?例えば

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

Function FormatAsISO8601(datetime) 
    ... 
End Function 

答えて

7

ここで私はクリスのクラスから必要に応じて特定のコード、もう少し最適化されています

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 
3

ここで強引機能です:

sDate = iso8601Date(Now) 
msgbox sDate 

Function iso8601Date(dt) 
    s = datepart("yyyy",dt) 
    s = s & RIGHT("0" & datepart("m",dt),2) 
    s = s & RIGHT("0" & datepart("d",dt),2) 
    s = s & "T" 
    s = s & RIGHT("0" & datepart("h",dt),2) 
    s = s & RIGHT("0" & datepart("n",dt),2) 
    s = s & RIGHT("0" & datepart("s",dt),2) 
    iso8601Date = s 
End Function 
は、