(defun universal-time-to-timestamp (universal-time)
"universal-time convert to unix timestamp"
(-
universal-time
(encode-universal-time 0 0 0 1 1 1970 0)))
(defun get-timestamp (&optional (universal-time (get-universal-time)))
"return unix timestamp"
(universal-time-to-timestamp universal-time))
(defun universal-time-from-timestamp (timestamp)
"unix timestamp convert to universal-time"
(+
(encode-universal-time 0 0 0 1 1 1970 0)
timestamp))
(defun timestamp-to-string (timestamp)
"return yyyymmddhhmiss"
(multiple-value-bind
(second min hour day month year)
(decode-universal-time (universal-time-from-timestamp timestamp) -8)
(format nil "~4,'0d~@{~2,'0d~}" year month day hour min second)))
(defmacro get-today-date-string ()
"return yyyymmddhhmiss"
'(timestamp-to-string (get-timestamp (get-universal-time))))
(defun todaydate-string ()
(multiple-value-bind (second min hour day month year) (decode-universal-time (get-universal-time))
(format nil "~4,'0d~@{~2,'0d~}" year month day)))
(defun todaytime-string ()
(multiple-value-bind (second min hour day month year) (decode-universal-time (get-universal-time))
(format nil "~@{~2,'0d~}" hour min second)))
(defun todaydatetime-string ()
(multiple-value-bind (second min hour day month year) (decode-universal-time (get-universal-time))
(format nil "~4,'0d~@{~2,'0d~}" year month day hour min second)))
(defun offset-date (universal-time n-day)
(multiple-value-bind (second min hour day month year) (decode-universal-time (+ universal-time (* n-day 86400)))
(format nil "~4,'0d~@{~2,'0d~}" year month day)))