Monday, November 08, 2010 at 12:02 AM.
system.verbs.builtins.date.dateToIso8601String
on dateToIso8601String (d) {
<<Changes
<<2/12/03; 6:17:57 PM by JES
<<Created. Return the given date as an ISO 8601 formatted string.
<<Example: 1994-11-05T08:15:30-05:00
<<Spec: http://www.w3.org/TR/NOTE-datetime
<<Cribbed from code written by Andre Radke at soap.encode.simpleType.
local (s, day, month, year, hour, minute, second);
date.get (d, @day, @month, @year, @hour, @minute, @second);
s = string (year) + "-";
s = s + string.padWithZeros (month, 2) + "-";
s = s + string.padWithZeros (day, 2) + "T";
s = s + string.padWithZeros (hour, 2) + ":";
s = s + string.padWithZeros (minute, 2) + ":";
s = s + string.padWithZeros (second, 2);
local (tzsign, tzoffset = date.getCurrentTimeZone () / 60);
if tzoffset < 0 {
tzoffset = -1 * tzoffset;
tzsign = "-"}
else {
tzsign = "+"};
local (tzhours = tzoffset / 60);
local (tzminutes = tzoffset % 60);
return (s + tzsign + string.padWithZeros (tzhours, 2) + ":" + string.padWithZeros (tzminutes, 2))}
<<bundle //test code
<<date.dateToIso8601String (clock.now ())
<<"2003-02-12T18:25:38-08:00"
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.