在 VBScript 中,是否FormatDateTime
支持 ISO 8601?
如果没有,我将如何用它编写这样的函数?
例如:
Response.Write FormatAsISO8601(#05/04/2011#)
Function FormatAsISO8601(datetime)
...
End Function
在 VBScript 中,是否FormatDateTime
支持 ISO 8601?
如果没有,我将如何用它编写这样的函数?
例如:
Response.Write FormatAsISO8601(#05/04/2011#)
Function FormatAsISO8601(datetime)
...
End Function
这是我需要从 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
这是一个蛮力功能:
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
据我所知,并非没有加载一些 COM 组件。
一些更正
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