(resending, since I sent this from the wrong Sender id the first time...)
In format-iso8601-time in swank.lisp, the following code is used to compute the timezone offset to print:
(multiple-value-bind (h m) (truncate (abs zone) 1.0) ;; Tricky. Sign of time zone is reversed in ISO 8601 ;; relative to Common Lisp convention! (format nil "~:[+~;-~]~2,'0D:~2,'0D" (> zone 0) h (round m)))
(round m) does the wrong thing in timezones which are not integers. E.g. at the moment I am in Adelaide, Australia, and the timezone is +09:30, which corresponds to a Common Lisp timezone value of -19/2. As written the code prints my timezone as +09:00. Rather than (round m), we want (round (* m 60)).
Regards,
/Bob
P.S. Slime rocks, thanks! :)