Emacs で UNIX 時間が必要になったので、いろいろ調べました。
そういうわけで個人的なメモになります。
;; 任意の日時の UNIX 時間を求める。
(let ((year 2011)
(month 11)
(day 21)
(hour 18)
(minutes 30)
(seconds 00))
(time-to-seconds
(encode-time seconds minutes hour day month year)))
=> 1321867800.0
;; UNIX 時間を Emacs 時間(?) に変換する。
(seconds-to-time 1321867800.0)
=> (20170 6680 0)
;; Emacs 時間を UNIX 時間に変換する。
(time-to-seconds '(20170 6680 0))
=> 1321867800.0
;; Emacs 時間を日時に変換する。
(current-time-string '(20170 6680 0))
=> "Mon Nov 21 18:30:00 2011"
;; Emacs 時間を任意のフォーマットの日時に変換する。
(format-time-string "%Y/%m/%d %a %H:%M:%S" '(20170 6680 0))
=> "2011/11/21 月 18:30:00"
;; Emacs 時間を decode する。
(decode-time '(20170 6680 0))
=> (0 30 18 21 11 2011 1 nil 32400)
;; (SECONDS MINUTES HOUR DAY MONTH YEAR DOW DST ZONE)
;; 現在の Emacs 時間を取得する。
(current-time)
=> (20170 6680 0)
UNIX のコマンドラインと C 言語での取得方法はこちら。[2009-11-21-1]
追記(2011-11-22):
コメント欄で @kiwanami
さんから、斜め上の図を教えて頂きました。
http://emacs.g.hatena.ne.jp/kiwanami/20110608/1307551439