この章では、NSPR にある日時関数について解説します。
NSPR は時を二つの方法で表します。絶対時間と時計・カレンダー時間です。NSPR は両方の表記法における型と定数や、二つの間での時間変換の関数も提供します。
- 絶対時間による表現は、時間軸に沿った中での点として時間を表現します。時間はエポックと呼ばれる時間軸の原点に対する相対量としてあらわされます。NSPR はエポックを 1970 年 1 月 1 日真夜中 (00:00:00) UTC (Coordinated Universal Time / 協定世界時) をエポックとして採用しています。この形式では、時間はこの時間軸上の点になります。タイムゾーンの概念はありません。
- 人間向けに使われる、時計・カレンダー時間では、時間をよりわかりやすい年月日時分秒であらわします。この形式では、タイムゾーンが非常に重要となります。たとえば、タイムゾーンを指定しなければ、1998 年 5 月 1 日 午前 8:00 はあいまいです。NSPR のこのデータ型、分解された時間 (exploded time) では、タイムゾーンの情報も含みますので、絶対時間における位置は特定されます。
絶対時間とカレンダー方式はタイミング制御の中では通常は利用されません。経過時間を測定する方法やタイムアウトにて利用される関数については、13 章 "時間間隔" を参照してください。
時計単位変換マクロ
秒、ミリ秒、マイクロ秒、ナノ秒同士の変換マクロです。
型と定数
NSPR の時計関数のために定義されている型と定数は以下のものです。
タイムパラメータのコールバック関数
いくつかの地理的場所においては、夏時間 (Daylight Saving Time / DST) の適用と DST が開始もしくは終了する日付の取り扱い方法は何度か変更されています。このため、タイムゾーン情報を決定するにはコールバック関数が用いられています。
PRTimeParamFn
の定義に従った形式で、自分自身のこのコールバック関数を定義することもできます。NSPR で提供されるこのタイプのよく利用されるコールバック関数には二つあります :
関数
日時を作成、取り扱うための関数は :