В 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
Вот конкретный код, который мне нужен из класса Криса, немного более оптимизированный:
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
StrN2(n)
добрый или бессмысленный, так как его можно заменить на Right("0" & n, 2)
.
- person user692942; 18.07.2021
Вот функция грубой силы:
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-компонента.
Вот написанный кем-то класс VBScript.
FormatDateTime
, ISO-8601, которого в то время (и до сих пор, насколько мне известно) нет. Да, вы можете создать его вручную, используя секунды, минуты, часы и т. д., но это не встроено. По той же логике вы можете сказать: да, VBScripts поддерживает битторрент, просто используйте необработанный поток TCP/UDP и напишите свою собственную логику. .
- person Chris Haas; 19.07.2021
Некоторые исправления
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