Next: , Previous: , Up: System Interface   [Contents][Index]


38.5 時刻

このセクションではカレント時刻とタイムゾーンを決定する方法を説明します。

これらの関数のほとんどは時刻を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を参照)のリターン値でのタイムスタンプのように、この形式を使用して表現されます。あるケースにおいては、関数はmicrosecpicosecのコンポーネントを省略した2要素や3要素(省略時のデフォルトは0)のリストをリターンすることがあります。

current-time-stringにたいするtime引数等の関数引数は、上述のような整数のリスト、epochからの単一の経過秒数、カレント時刻を意味するnilなどの、より一般的なtime値(time value)を受け付けます。current-time-stringformat-time-stringを使用して可読性のある文字列、decode-timefloat-timeを使用して他の形式にtime値を変換できます。これらの関数は以降のセクションで説明します。

Function: current-time-string &optional time zone

この関数はカレントの時刻と日付を可読形式の文字列でリターンする。この文字列の先頭部分には曜日、月、日付、時刻がこの順に含まれて、それらが可変長となることはない。これらのフィールドにたいして使用される文字数は常に同じなので、それらを切り出すために安心してsubstringを使用できる。年の部分は正確に4桁とは限らず、いつか追加情報が終端に付加されるかもしれないので文字列終端からではなく先頭から文字を数えること。

引数timeが与えられたら、それはカレント時刻のかわりにフォーマットする時刻を指定する。オプション引数zoneのデフォルトはカレントのタイムゾーンルール。Time Zone Rulesを参照のこと。

(current-time-string)
     ⇒ "Wed Oct 14 22:21:05 1987"
Function: current-time

この関数は4つの整数のリスト(sec-high sec-low microsec picosec)で表されたカレント時刻をリターンする。これらの整数うち後部は、低精度の時刻をリターンするシステムでは0。現在のすべてのマシンではpicosecは1000の倍数だが、より高精度のクロックが利用可能になったら変更されるかもしれない。

Function: float-time &optional time

この関数はエポックからの経過秒数を浮動小数点数としてリターンする。オプション引数time-valueが与えられた場合には、カレント時刻ではなく変換する時刻を指定する。

警告: 結果は浮動小数点数なので正確ではないかもしれない。正確なタイムスタンプが必要なら使用しないこと。

time-to-secondsはこの関数のエイリアス。

Function: seconds-to-time time

この関数はtime値を整数リスト形式に変換する。たとえばtimeが数値の場合にはオーバーフローや丸めエラーが発生しなければ、これは(time-to-seconds (seconds-to-time time))と等価。