Datetime VBScript ISO8601

Datetime VBScript ISO8601,datetime,vbscript,asp-classic,iso8601,Datetime,Vbscript,Asp Classic,Iso8601,在VBScript中,FormatDateTime是否支持ISO 8601 如果没有,我将如何用它编写这样的函数 例如: Response.Write FormatAsISO8601(#05/04/2011#) Function FormatAsISO8601(datetime) ... End Function 据我所知,在没有加载COM组件的情况下是不行的 以下是我从Chris的类中需要的具体代码,优化了一点: Public Function ToIsoDateTime(date

在VBScript中,
FormatDateTime
是否支持ISO 8601

如果没有,我将如何用它编写这样的函数

例如:

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

Function FormatAsISO8601(datetime)
    ...
End Function

据我所知,在没有加载COM组件的情况下是不行的


以下是我从Chris的类中需要的具体代码,优化了一点:

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
公共函数toSoDateTime(datetime)
ToIsoDateTime=ToIsoDate(日期时间)和“T”以及ToIsoTime(日期时间)和CurrentTimezone
端函数
公共函数ToIsoDate(日期时间)
ToIsoDate=CStr(年(日期时间))&“-”和StrN2(月(日期时间))&“-”和StrN2(日(日期时间))
端函数
公共函数ToIsoTime(datetime)
ToIsoTime=StrN2(小时(日期时间))&“&StrN2(分钟(日期时间))&:”&StrN2(秒(日期时间))
端函数
专用函数StrN2(n)
如果Len(CStr(n))<2,则StrN2=“0”&n否则StrN2=n
端函数

这里有一个蛮力函数:

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
一些更正

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

链接不再是实际的。