Unix 時間(1970 年 1 月 1 日 0 時 UTC からの秒数)を日付に直したり、日付から Unix 時間を作ったりします。時差を入れると、その地域の時刻として読み書きします。日本なら 9 です。
Unix 時間と日付を相互に変換します。Unix 時間とは、1970 年 1 月 1 日 0 時 0 分 0 秒(UTC)からの経過秒数のことです。エポック秒、Unix タイムスタンプとも呼びます。
は日付の通日、、、 は時・分・秒、 は UTC からの時差、 が Unix 時間です。日付を秒に直し、その地域の時差を外して UTC に合わせます。
時刻を 1 つの整数にしてしまえば、暦も時差も持ち歩かずに記録でき、大小の比較も引き算もそのままできます。記録やデータベースで時刻をこの形で持つのは、そのためです。
Unix 時間 1767225600 は、時差 +9 の地域では 2026 年 1 月 1 日 9 時 00 分 00 秒、木曜日にあたります。
1767225600 を 86400 で割ると 20454 でちょうど割り切れます。つまり UTC では 2026 年 1 月 1 日 0 時 00 分です。ここに時差の 9 時間(32400 秒)を足して、その地域の 9 時 00 分になります。
Unix 時間を 32 bit の符号つき整数で持つと、2038 年 1 月 19 日に上限を超えて負の数に回ります。今のシステムはほとんどが 64 bit で持つので問題になりませんが、古い機器や、古い記録の形式には残っています。
うるう秒は数えません。Unix 時間そのものが 1 日をつねに 86400 秒と定めているためで、これは仕様どおりの振る舞いです。