Emacs: Insert Date Time 🚀
Here's a command to insert current date/time.
(defun xah-insert-date () "Insert current date time. Insert date in this format: yyyy-mm-dd. If `universal-argument' is called first, prompt for a format to use. If there is selection, delete it first. URL `http://xahlee.info/emacs/emacs/elisp_insert-date-time.html' Version 2013-05-10 2021-11-07 2022-04-07" (interactive) (let (($style (if current-prefix-arg (string-to-number (substring (completing-read "Style:" '( "1 → 20180412224611" "2 → 2018-04-12_224611" "3 → 2018-04-12T22:46:11-07:00" "4 → 2018-04-12 22:46:11-07:00" "5 → 2018-04-12 Thursday" "6 → Thursday, April 12, 2018" "7 → Thu, Apr 12, 2018" "8 → April 12, 2018" "9 → Apr 12, 2018" )) 0 1)) 0 ))) (when (region-active-p) (delete-region (region-beginning) (region-end))) (insert (cond ((= $style 0) ;; "2016-10-10" (format-time-string "%Y-%m-%d")) ((= $style 1) ;; "1 → 20180412224611" (replace-regexp-in-string ":" "" (format-time-string "%Y%m%d%T"))) ((= $style 2) ;; "2 → 2018-04-12_224611" (replace-regexp-in-string ":" "" (format-time-string "%Y-%m-%d_%T"))) ((= $style 3) ;; "3 → 2018-04-12T22:46:11-07:00" (concat (format-time-string "%Y-%m-%dT%T") (funcall (lambda ($x) (format "%s:%s" (substring $x 0 3) (substring $x 3 5))) (format-time-string "%z")))) ((= $style 4) ;; "4 → 2018-04-12 22:46:11-07:00" (concat (format-time-string "%Y-%m-%d %T") (funcall (lambda ($x) (format "%s:%s" (substring $x 0 3) (substring $x 3 5))) (format-time-string "%z")))) ((= $style 5) ;; "5 → 2018-04-12 Thursday" (format-time-string "%Y-%m-%d %A")) ((= $style 6) ;; "6 → Thursday, April 12, 2018" (format-time-string "%A, %B %d, %Y")) ((= $style 7) ;; "7 → Thu, Apr 12, 2018" (format-time-string "%a, %b %d, %Y")) ((= $style 8) ;; "8 → April 12, 2018" (format-time-string "%B %d, %Y")) ((= $style 9) ;; "9 → Apr 12, 2018" (format-time-string "%b %d, %Y")) (t (format-time-string "%Y-%m-%d"))))))