日付型

読み:ひづけがた
外語: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ビット長

31ビット・秒単位

0x7fffffff秒 = 約68.05年

古くはtime_tの一般的な実装。

The Epoch + 0x7fffffff秒は、2038(令和20)年1月19日12:14:07(日本時間)(@176)までしか表わせず、2038年問題が発生する。

32ビット長

32ビット・ミリ秒単位

0xffffffffミリ秒 = 約49.71日

16ビットのWindowsの内部カウンターなどで広く使われている方式。49.7日問題を発生させる。

32ビット・10ミリ秒単位

(0xffffffff×10)ミリ秒 = 約497.1日

Linuxのjiffiesなどで広く使われている方式。497日問題を発生させる。

32ビット・秒単位

0xffffffff秒 = 約136.1年

The Epoch + 0xffffffff秒は、2106(令和88)年2月7日15:28:15(日本時間)(@311)までを表わすことができる。

63ビット長

63ビット・秒単位

0x7fffffffffffffff秒 = 約2922億年

The Epoch + 0x7fffffffffffffff秒は、西暦2922億7702万6596年12月4日 15:30:07(UTC)までを表わすことができる。

64ビット長

64ビット・ナノ秒単位

0xffffffffffffffffナノ秒 = 約584.555年

Linuxカーネルのxtimeなどで用いられているカウンター。

64ビットのナノ秒値は、584年と少々の時間を表現することができる。

64ビット・マイクロ秒単位

0xffffffffffffffffマイクロ秒 = 約58万4555年

Linuxカーネルのsuseconds_tなどで用いられているカウンター。

実際にはナノ秒単位のxtimeを1000で割って返却する際に用いられている

64ビット・10ミリ秒単位

(0xffffffffffffffff×10)ミリ秒 = 約58.4億年

Linuxのjiffiesなどで使われている方式。497日問題解決のため64ビット化されたもの。

用語の所属
Date

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club