2011-11 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
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
2011-11 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30