Next: Time Zone Rules, Previous: User Identification, Up: System Interface [Contents][Index]
このセクションではカレント時刻とタイムゾーンを決定する方法を説明します。
これらの関数のほとんどは時刻を4つの整数のリスト(sec-high sec-low microsec
picosec)
で表現します。これは式
high * 2**16 + low + micro * 10**-6 + pico *
10**-12を使用してepoch (January 1, 1970 at 00:00 UTC)からの経過秒数を表します。
current-time
のリターン値は、他のfile-attributes
のような関数(Definition of file-attributesを参照)のリターン値でのタイムスタンプのように、この形式を使用して表現されます。あるケースにおいては、関数はmicrosecやpicosecのコンポーネントを省略した2要素や3要素(省略時のデフォルトは0)のリストをリターンすることがあります。
current-time-string
にたいするtime引数等の関数引数は、上述のような整数のリスト、epochからの単一の経過秒数、カレント時刻を意味するnil
などの、より一般的なtime値(time
value)を受け付けます。current-time-string
やformat-time-string
を使用して可読性のある文字列、decode-time
やfloat-time
を使用して他の形式にtime値を変換できます。これらの関数は以降のセクションで説明します。
この関数はカレントの時刻と日付を可読形式の文字列でリターンする。この文字列の先頭部分には曜日、月、日付、時刻がこの順に含まれて、それらが可変長となることはない。これらのフィールドにたいして使用される文字数は常に同じなので、それらを切り出すために安心してsubstring
を使用できる。年の部分は正確に4桁とは限らず、いつか追加情報が終端に付加されるかもしれないので文字列終端からではなく先頭から文字を数えること。
引数timeが与えられたら、それはカレント時刻のかわりにフォーマットする時刻を指定する。オプション引数zoneのデフォルトはカレントのタイムゾーンルール。Time Zone Rulesを参照のこと。
(current-time-string) ⇒ "Wed Oct 14 22:21:05 1987"
この関数は4つの整数のリスト(sec-high sec-low microsec
picosec)
で表されたカレント時刻をリターンする。これらの整数うち後部は、低精度の時刻をリターンするシステムでは0。現在のすべてのマシンではpicosecは1000の倍数だが、より高精度のクロックが利用可能になったら変更されるかもしれない。
この関数はエポックからの経過秒数を浮動小数点数としてリターンする。オプション引数time-valueが与えられた場合には、カレント時刻ではなく変換する時刻を指定する。
警告: 結果は浮動小数点数なので正確ではないかもしれない。正確なタイムスタンプが必要なら使用しないこと。
time-to-seconds
はこの関数のエイリアス。
この関数はtime値を整数リスト形式に変換する。たとえばtimeが数値の場合にはオーバーフローや丸めエラーが発生しなければ、これは(time-to-seconds
(seconds-to-time time))
と等価。