日付型 |
辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS) |
読み:ひづけがた |
外語:Date |
品詞:名詞 |
日付や時刻を格納する変数型の通称の一つ。呼称は揺れが大きく、定まっていない。
|
概要 |
日付・時刻の扱い方は、プログラミング言語によって様々である。
C/C++のように通常の整数型変数を流用する方法や、Javaのように専用のクラスを用意する方法などがある。
いずれにしても、内部的には、ある特定の日時からの経過時間で表現する方法が主流である。経過時間で時刻を表わす方法の基準(紀元)のデファクトスタンダードは「The Epoch」であり、1970年1月1日00:00:00(UTC)である。
特徴 |
長さ |
The Epochからの経過時間は、かつては32ビット、後に64ビットが一般化した。いずれも符号があり、有効ビット長は31ビットまたは63ビットである。
理論上は負の数を用いることでThe Epochよりも前の日時を表現することが可能だが、これは実装依存で、また殆どの実装で対応していない。たとえばtime_tを扱うCの標準関数は、エラーの際に (time_t) (-1) を返す。
31ビット長 |
0x7fffffff秒 = 約68.05年
古くはtime_tの一般的な実装。
The Epoch + 0x7fffffff秒は、2038(令和20)年1月19日12:14:07(JST)(@176)までしか表わせず、2038年問題が発生する。
32ビット長 |
0xffffffffミリ秒 = 約49.71日
16ビットのWindowsの内部カウンターなどで広く使われている方式。49.7日問題を発生させる。
(0xffffffff×10)ミリ秒 = 約497.1日
0xffffffff秒 = 約136.1年
The Epoch + 0xffffffff秒は、2106(令和88)年2月7日15:28:15(JST)(@311)までを表わすことができる。
63ビット長 |
0x7fffffffffffffff秒 = 約2922億年
The Epoch + 0x7fffffffffffffff秒は、西暦2922億7702万6596年12月4日 15:30:07(UTC)までを表わすことができる。
64ビット長 |
0xffffffffffffffffナノ秒 = 約584.555年
Linuxカーネルのxtimeなどで用いられているカウンター。
64ビットのナノ秒値は、584年と少々の時間を表現することができる。
0xffffffffffffffffマイクロ秒 = 約58万4555年
Linuxカーネルのsuseconds_tなどで用いられているカウンター。
実際にはナノ秒単位のxtimeを1000で割って返却する際に用いられている
(0xffffffffffffffff×10)ミリ秒 = 約58.4億年
Linuxのjiffiesなどで使われている方式。497日問題解決のため64ビット化されたもの。
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |