…one when asserting for missing elements]
This will add nanosecond timestamp support to local-time:now in Clozure CL (tested) and CMUCL (untested) besides the already existing SBCL support. To support any other CL implementations, simply add an implementation to %unix-gettimeofday.
… and CMUCL] Maps to whatever the CL implementation has to access the UNIX gettimeofday(2) function. Returns NIL when the current implementation is not supported.
Clozure CL generates read errors when encountering read-time evaluation of constants such as '(integer 0 #.+seconds-per-day+) or #.+rotated-month-offsets-without-leap-day+ due to the constants not having been defined yet at read-time. I'm assuming most CL implementations will recognize these constants for what they are (constant) and will compile accordingly without these explicit reader macros.
… a form is passed as part which, when evaluated, returns a valid part at runtime]
…a default timezone offset when it's not specified in the timestring.] background: we can't get it from *default-timezone*, because to know the offset of a timezone, you need to have an exact timestamp (think of daylight savings).