1. ホーム
  2. unix

[解決済み] なぜ1970年1月1日が「エポックタイム」なのか?

2022-03-20 15:31:05

質問

なぜ

1970年1月1日 00:00:00

を考慮しました。 エポックタイム ?

解決方法は?

初期のバージョンのunixは、1/60秒間隔でシステム時間を計測していました。これは、32ビットの符号なし整数が829日未満の時間しか表現できないことを意味します。このため、数字 0 (と呼ばれる)。 エポック は、ごく最近に設定する必要がありました。この時は1970年代前半だったので、エポックは1971-1-1に設定された。

その後、システム時刻が1秒ごとに増加するようになり、32ビットの符号なし整数で表現できる時間が約136年まで増加した。このため、32ビットの符号なし整数で表現できる時間は136年程度となり、1秒単位でカウントする必要がなくなったため、10年単位で切り捨てられ、1970-1-1となった。1971-1-1より、少しはすっきりしていると思ったのだろう。

なお、32ビット 符号付き 1970-1-1 をエポックとする整数は、最大で次の日付を表すことができます。 2038-1-19 この場合、1901-12-13まで折り返されます。