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


38.5 時刻

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

これらの関数のほとんどは、整数4つのリスト(sec-high sec-low microsec picosec)、整数3つのリスト(sec-high sec-low microsec)、または整数2つのリスト(sec-high sec-low)のいずれかで時刻を表します。整数sec-highsec-lowは秒の整数値の高位ビットと低位ビットです。この整数 high * 2**16 + low, は、epoch(0:00 January 1, 1970 UTC)から指定された時刻までの秒数です。3番目のリスト要素microsecが与えられた場合、それはその秒数の開始から指定された時刻までのマイクロ秒数を与えます(訳注: マイクロは百万分の一 )。同様に、4番目のリスト要素picosecが与えられた場合は、そのマイクロ秒数の開始から指定された時刻までのピコ秒数を与えます(訳注: ピコは一兆分の一 )。

current-timeのリターン値は、file-attributesのリターン値のタイムスタンプのように、4つの整数を使用して時刻を表します(Definition of file-attributesを参照)。current-time-stringの引数time-valueのように、関数の引数では2整数、3整数、4整数のリストが指定できます。これらののリスト表現から、current-time-stringを使用して標準的な可読形式の文字列へ、または以降のセクションで説明するdecode-timeformat-time-stringを使用して他形式へ変換できます。

Function: current-time-string &optional time-value

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

引数time-valueが与えられた場合、それはカレント時刻ではなく,フォーマットする(整数リスト表現の)時刻を指定する。

(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-value

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

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

Function: current-time-zone &optional time-value

この関数はユーザーが居るタイムゾーンを記すリストをリターンする。

値は(offset name)という形式をもつ。ここでoffsetは、UTCより進んでいる秒数(グリニッジより東)を与える整数である。負の値はグリニッジより西を意味する。2つ目の要素nameは、そのタイムゾーンの名前を与える文字列。夏時間の開始と終了時に、いずれの要素も変化する。ユーザーが季節時間調整を用いていないタイムゾーンを指定した場合には、値は時期を通して定数となる。

この値を計算するのに必要なすべての情報をオペレーティングシステムが提供しなければ、このリストの未知の要素はnilになる。

引数time-valueが与えられた場合、それはカレント時刻ではなく、かわりに分析すべき時刻(整数リスト表現)を指定する。

カレントのタイムゾーンは、環境変数TZにより判断されます。System Environmentを参照してください。たとえば(setenv "TZ" "UTC0")とすれば、万国標準時の使用をEmacsに指示できます。その環境にTZがなければ、Emacsはプラットフォーム依存のデフォルトタイムゾーンを使用します。