anchor.diff:                                                  :name "anonymous"
                                                   :loaded t)))))
                           *default-timezone*)))
  -      (unless usec (setf usec 0))
  +      (unless nsec (setf nsec 0))
         (unless second (setf second 0))
         (unless minute (setf minute 0))
         (unless hour (setf hour 0))
         (unless day (setf day 1))
         (unless month (setf month 3))
         (unless year (setf year 2000))
  -      (encode-local-time (* usec 1000) second minute hour day month year :timezone timezone))))
  +      (encode-local-time nsec second minute hour day month year :timezone timezone))))
   
   (defun parse-datestring (string)
     (let* ((*default-timezone* +utc-zone+)
  
positive.code:                        (error "Failed to parse ~S as an rfc3339 time" time-string)
                         (return-from %split-timestring nil)))
                   (done ()
                     (return-from %split-timestring (list year month day hour minute second usec offset-hour offset-minute))))
            (parse))))))
  
  (defun parse-rfc3339-timestring (timestring &key (fail-on-error t)
  
negative.code:                            (let* ((start (car (second parts)))
                                    (end (cdr (second parts))))
                               (declare (type (integer 0 #.array-dimension-limit) start end))
                               (passert (<= (- end start) 9))
                               (let ((new-end (position-if (lambda (el)
                                                             (not (char= #\0 el)))
                                                           time-string :start start :end end :from-end t)))
                                 (when new-end
                                   (setf end (min (1+ new-end)))))
                               ;;(break "~S: ~S"  (subseq time-string start end) (- end start))
                               (setf nsec (* (the fixnum (parse-integer time-string :start start :end end))
                                             (aref #.(coerce #(1000000000 100000000 10000000
                                                               1000000 100000 10000 1000 100 10 1)
                                                             '(simple-array fixnum (10)))
                                                   (- end start)))))
                             (setf nsec 0)))))
                   (time-offset (start-end sign)
                     (with-parts-and-count ((car start-end) (cdr start-end) time-separator)
                       (passert (or allow-missing-timezone-part-p (= count 2)))
  