Core code
<%'Function: Multifunction date formatting function'Source: http://jorkin.reallydo.com/article.asp?id=477Function FormatDate(sDateTime, sReallyDo) Dim sJorkin sJorkin = GetLocale() If Not IsDate(sDateTime) Then sDateTime = Now() sDateTime = CDate(sDateTime) Select Case UCase(sReallyDo & ) Case 0, 1, 2, 3, 4 FormatDate = FormatDateTime(sDateTime, sReallyDo) Case 00 FormatDate = FormatDate(sDateTime, YYYY-MM-DD hh:mm:ss) Case 01 FormatDate = FormatDate(sDateTime, YYYYYYYYYYYYYYYY-MM-DD) Case 02 FormatDate = FormatDate(sDateTime, YYYY-MM-DD) Case 03 FormatDate = FormatDate(sDateTime, hh:mm:ss) Case 04 FormatDate = FormatDate(sDateTime, hh:mm) Case ISO8601, GOOGLE, SITEMAP '//ISO8601 format, Generally used for GoogleSiteMap, +08:00 is the time zone. FormatDate = FormatDate(sDateTime, YYYY-MM-DDThh:mm:ss.000+08:00) Case RFC822, RSS, FEED '//RFC822 format, generally used for RSS , +0800 is the time zone. SetLocale(en-gb) FormatDate = FormatDate(sDateTime, ew, DD eMM YYYY hh:mm:ss +0800) SetLocale(sJorkin) Case RND, RAND, RANDOMIZE '//Randomize string Randomize sJorkin = Rnd() FormatDate = FormatDate(sDateTime, YYYYMMDDhhmmss) & _ Fix((9 * 10^6 -1) * sJorkin) + 10^6 Case Else FormatDate = sReallyDo FormatDate = Replace(FormatDate , YYYY, Year(sDateTime)) FormatDate = Replace(FormatDate, DD, Right(0 & Day(sDateTime), 2)) FormatDate = Replace(FormatDate, hh, Right(0 & Hour(sDateTime), 2)) FormatDate = Replace(FormatDate, mm, Right(0 & Minute(sDateTime), 2)) FormatDate = Replace(FormatDate, ss, Right(0 & Second(sDateTime) , 2)) FormatDate = Replace(FormatDate, YY, Right(Year(sDateTime), 2)) FormatDate = Replace(FormatDate, D, Day(sDateTime)) FormatDate = Replace(FormatDate, h, Hour(sDateTime)) FormatDate = Replace(FormatDate, m, Minute(sDateTime)) FormatDate = Replace(FormatDate, s, Second(sDateTime)) If InStr(1, FormatDate, EW, 1) > 0 Then SetLocale(en -gb) FormatDate = Replace(FormatDate, EW, UCase(WeekdayName(Weekday(sDateTime), False))) FormatDate = Replace(FormatDate, eW, WeekdayName(Weekday(sDateTime), False)) FormatDate = Replace(FormatDate, Ew, UCase(WeekdayName(Weekday(sDateTime), True))) FormatDate = Replace(FormatDate, ew, WeekdayName(Weekday(sDateTime), True)) SetLocale (sJorkin) Else FormatDate = Replace(FormatDate, W, WeekdayName(Weekday(sDateTime), False)) FormatDate = Replace(FormatDate, w, WeekdayName(Weekday(sDateTime), True)) End If If InStr(1, FormatDate, EMM, 1) > 0 Then SetLocale(en-gb) FormatDate = Replace(FormatDate, EMM, MonthName(Month( sDateTime), False)) FormatDate = Replace(FormatDate, eMM, MonthName(Month(sDateTime), True)) SetLocale(sJorkin) Else FormatDate = Replace(FormatDate, MM, Right(0 & Month(sDateTime), 2)) FormatDate = Replace(FormatDate, M, Month(sDateTime)) End If End SelectEnd Function%>
The usage is as follows:
<%'Format date to ISO8601 format Response.Write(FormatDate(2008-03-06 08:03:06, SITEMAP))'Format date to RFC822 format Response.Write(FormatDate(2008-03-06 08 :03:06, RSS))'Format date to (English week,English month/Day/YYYY))'Response.Write(FormatDate(Now(), eW, EMM/DD/YYYY))' will generate a year String of random numbers of month, day, hour, minute and second Response.Write(FormatDate(Now(), RND))%>
For more information, please check out the following related articles