blob: 95d672c85479e6500e8ea87f32d80e7514d6cde4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
;;; custom-datetime.el --- -*- coding: utf-8; lexical-binding: t; -*-
;;; Commentary:
;;
;;; Code:
(defvar readable-date-time-format "%A, %B %d, %Y at %I:%M:%S %p %Z "
"Format string used by `cj/insert-readable-date-time'.
See `format-time-string' for possible replacements.")
(defun cj/insert-readable-date-time ()
"Insert the current date and time into the current buffer.
Use `readable-date-time-format' for formatting."
(interactive)
(insert (format-time-string readable-date-time-format (current-time))))
(defvar sortable-date-time-format "%Y-%m-%d %a @ %H:%M:%S %z "
"Format string used by `cj/insert-sortable-date-time'.
See `format-time-string' for possible replacements.")
(defun cj/insert-sortable-date-time ()
"Insert the current date and time into the current buffer.
Use `sortable-date-time-format' for formatting."
(interactive)
(insert (format-time-string sortable-date-time-format (current-time))))
(defvar sortable-time-format "%I:%M:%S %p %Z "
"Format string used by `cj/insert-sortable-time'.
See `format-time-string' for possible replacements.")
(defun cj/insert-sortable-time ()
"Insert the current time into the current buffer.
Use `sortable-time-format' for formatting."
(interactive)
(insert (format-time-string sortable-time-format (current-time))))
(defvar readable-time-format "%-I:%M %p "
"Format string used by `cj/insert-readable-time'.
See `format-time-string' for possible replacements.")
(defun cj/insert-readable-time ()
"Insert the current time into the current buffer.
Use `readable-time-format' for formatting."
(interactive)
(insert (format-time-string readable-time-format (current-time))))
(defvar sortable-date-format "%Y-%m-%d %a"
"Format string used by `cj/insert-sortable-date'.
See `format-time-string' for possible replacements.")
(defun cj/insert-sortable-date ()
"Insert the current date into the current buffer.
Use `sortable-date-format' for formatting."
(interactive)
(insert (format-time-string sortable-date-format (current-time))))
(defvar readable-date-format "%A, %B %d, %Y"
"Format string used by `cj/insert-readable-date'.
See `format-time-string' for possible replacements.")
(defun cj/insert-readable-date ()
"Insert the current date into the current buffer.
Use `readable-date-format' for formatting."
(interactive)
(insert (format-time-string readable-date-format (current-time))))
;; Date/time insertion prefix and keymap
(define-prefix-command 'cj/datetime-map nil
"Keymap for inserting various date/time formats.")
(define-key cj/custom-keymap "d" 'cj/datetime-map)
(define-key cj/datetime-map "r" 'cj/insert-readable-date-time)
(define-key cj/datetime-map "s" 'cj/insert-sortable-date-time)
(define-key cj/datetime-map "t" 'cj/insert-sortable-time)
(define-key cj/datetime-map "T" 'cj/insert-readable-time)
(define-key cj/datetime-map "d" 'cj/insert-sortable-date)
(define-key cj/datetime-map "D" 'cj/insert-readable-date)
(provide 'custom-datetime)
;;; custom-datetime.el ends here.
|