[2]
C言語の time.h
の構造体
tm
は、日時を表します。
[3] tm
は、 calendar time の各 component を保持します。
すなわち broken-down time を表します。 >>1
tm_sec
int
[ 0, 60 ]
(60 は正閏秒)tm_min
int
[ 0, 59 ]tm_hour
int
[ 0, 23 ]tm_mday
int
[ 1, 31 ]tm_mon
int
[ 0, 11 ]tm_year
int
tm_wday
int
[ 0, 6 ]tm_yday
int
[ 0, 365 ]tm_isdst
int
:
DST 中は正、
DST 外は 0、
不明なら負。
mktime
では、
正か 0 なら DST 中・外の時刻とみなして解釈しようとし、
負なら指定時刻が DST 中かどうか判定しようとします。[5] C言語と Perl の
gmtime
, localtime
は time_t
を tm
に変換します。
[8] C言語の mktime
は tm
を受け取り time_t
を返します。
[13] Perlモジュールの Time::Local
は
tm
リストを受け取り time_t
を返します。
2桁西暦年号の解釈の特殊な規則があるため
gmtime
/localtime
の完全な逆演算にはなっていません。
年、月、日、時間、分、秒の値を受け取るか返すクラスDateのすべてのメソッドにおいて、次の表示が使用されます。
年yは整数y - 1900によって表されます。
月は0 - 11の整数で表されます。0は1月、1は2月、そして11は12月を意味します。
日(月の何日目)は通常どおり1 - 31の整数で表されます。
時間は0 - 23の整数で表されます。このため、深夜零時から午前1時までの時間は時刻0であり、正午から午後1時までの時間は時刻12を意味します。
分は通常どおり0 - 59の整数で表されます。
秒は0 - 61の整数で表されます。値60および61は、うるう秒のためにだけ、そして実際にうるう秒を正確に追跡するJavaの実装だけで発生します。現在使われているうるう秒の算出法では、2回のうるう秒が同じ分に発生することはきわめてまれですが、この仕様はISO Cによる日付および時刻の規約に従います。