2009年02月13日
バレンタインに・・・
明日バレンタインデーの日本時間8時31分30秒はUNIXタイムで「1234567890」になるそうで世界中でささやかにお祝いされるみたいです。
ということでコンピュータに関する時間のお話など。バレンタインデーとは全く関係ありません(笑)
UNIXタイムとは世界標準時で1970年1月1日0時0分0秒から何秒経過したか?というコンピュータの中での時間をあらわす形式なのですが、明日の八時半に「1234567890」秒経過した、ということになるのですね。
この時間の表し方はほとんど見えるところに出てこないのですが、実は世の中のコンピュータで広く使われています。
世界中のいろいろなコンピュータと時間に関するデータをやり取りするのに便利だからですね。
そういえば2000年問題って覚えていますでしょうか?
時間の「年」の部分を末尾二桁で計算させるようにしていたおかげで20XX年を19XX年と勘違いしてしまって問題が起こる、って言うやつですね。
UNIXタイムにもこれと同じような問題があったりします。
データの桁数が2進数で31桁なので最大値は (2の31乗) = 2,147,483,647までしか計算できないのです。これに該当するのが「2038年1月19日3時14分7秒」。これを超えると不具合が出る可能性があります。
「2038年問題」といわれます。
これを解消するために最近ではUNIXタイムの桁数を63桁に増やして9,223,372,036,854,775,807秒まで計算できるようにしているみたいです。
もちろんこうしても限界がありますので「292277026596年問題」なんていうらしいです。
ついでに2000年問題を年の桁を4桁に増やして対応したわけですが、今度は10000年にまた同じ問題が起きますのでこれを「10000年問題」と呼びます。
ということでコンピュータに関する時間のお話など。バレンタインデーとは全く関係ありません(笑)
UNIXタイムとは世界標準時で1970年1月1日0時0分0秒から何秒経過したか?というコンピュータの中での時間をあらわす形式なのですが、明日の八時半に「1234567890」秒経過した、ということになるのですね。
この時間の表し方はほとんど見えるところに出てこないのですが、実は世の中のコンピュータで広く使われています。
世界中のいろいろなコンピュータと時間に関するデータをやり取りするのに便利だからですね。
そういえば2000年問題って覚えていますでしょうか?
時間の「年」の部分を末尾二桁で計算させるようにしていたおかげで20XX年を19XX年と勘違いしてしまって問題が起こる、って言うやつですね。
UNIXタイムにもこれと同じような問題があったりします。
データの桁数が2進数で31桁なので最大値は (2の31乗) = 2,147,483,647までしか計算できないのです。これに該当するのが「2038年1月19日3時14分7秒」。これを超えると不具合が出る可能性があります。
「2038年問題」といわれます。
これを解消するために最近ではUNIXタイムの桁数を63桁に増やして9,223,372,036,854,775,807秒まで計算できるようにしているみたいです。
もちろんこうしても限界がありますので「292277026596年問題」なんていうらしいです。
ついでに2000年問題を年の桁を4桁に増やして対応したわけですが、今度は10000年にまた同じ問題が起きますのでこれを「10000年問題」と呼びます。