Function: decoded-time-set-defaults

decoded-time-set-defaults is a byte-compiled function defined in time-date.el.gz.

Signature

(decoded-time-set-defaults TIME &optional DEFAULT-ZONE)

Documentation

Set any nil values in decoded-time TIME to default values.

The default value is based on January 1st, 1970 at midnight. This year is used to guarantee portability; see Info node (elisp) Time of Day.

TIME is modified and returned.

Probably introduced at or before Emacs version 27.1.

Source Code

;; Defined in /usr/src/emacs/lisp/calendar/time-date.el.gz
(defun decoded-time-set-defaults (time &optional default-zone)
  "Set any nil values in `decoded-time' TIME to default values.
The default value is based on January 1st, 1970 at midnight.
This year is used to guarantee portability; see Info
node `(elisp) Time of Day'.

TIME is modified and returned."
  (unless (decoded-time-second time)
    (setf (decoded-time-second time) 0))
  (unless (decoded-time-minute time)
    (setf (decoded-time-minute time) 0))
  (unless (decoded-time-hour time)
    (setf (decoded-time-hour time) 0))

  (unless (decoded-time-day time)
    (setf (decoded-time-day time) 1))
  (unless (decoded-time-month time)
    (setf (decoded-time-month time) 1))
  (unless (decoded-time-year time)
    (setf (decoded-time-year time) 1970))

  ;; When we don't have a time zone, default to DEFAULT-ZONE without
  ;; DST if DEFAULT-ZONE if given, and to unknown DST otherwise.
  (unless (decoded-time-zone time)
    (if default-zone
	(progn (setf (decoded-time-zone time) default-zone)
	       (setf (decoded-time-dst time) nil))
      (setf (decoded-time-dst time) -1)))

  time)