システムクロック

時計 (計算機)

[13] 計算機には、時計があります。システム (と(ど)) (けい) (system clock) などと呼ばれています。

動作

[4] 次のような理由で、時計の値は非直感的に変化することがあります。

  • [5] 時計はそもそも正確ではありません。 温度など物理的な理由で時刻の刻み幅が微妙に変化することがあります。
  • [7] NTP により時刻が修正されることがあります。時間を飛ばしたり、過去に戻したりすることがあります。
  • [6] 利用者が手動で時刻を設定することがあります。時間を飛ばしたり、過去に戻したりすることがあります。
  • [8] 計算機VM が一旦停止状態となり、その後復帰した時、時間が一気に進む (ようにみえる) ことがあります。
  • [9] 時刻表示上、閏秒は存在しないものとして扱われるのが一般的です。 補正のため時刻の刻み幅が変化したり、一度に進んだり、過去に戻ったりすることがあります。
  • [11] UTC でなく地方時を用いる場合、夏時刻の実施や標準時の変更などにより、 時間を進めたり戻したりすることがあります。

[3] time skewtime drift も参照。

[10] 狭義のシステム時計の他に、プログラム上不便なこうした性質を除去した単調増加時計プラットフォーム側で提供される場合もあります。

時間帯

[15] 地方時に設定する場合と、UTC に設定する場合があります。

[16] UTC に設定する場合、プラットフォーム側で必要に応じて利用者時間帯に変換して表示します。

[17] 古めのシステムは、地方時を採用していることが多いです。 Windows地方時を使っています。

[18] 最近のシステムは、UTC を採用していることが多いです。 多くの Unix 系システムは UTC を使っています。

[20] アプリケーションとの関係性については、計算機システムにおける時差を参照。

[25] なお、ほとんどの場合 UTC とは閏秒のないUTC です。

API

[12] システム時計にアクセスする API

関連

[23] uptime も参照。

メモ

[1] Time - ArchWiki ( ()) https://wiki.archlinux.org/index.php/time

The standard used by hardware clock (CMOS clock, the time that appears in BIOS) is defined by the operating system. By default, Windows uses localtime, Mac OS uses UTC, and UNIX-like operating systems vary. An OS that uses the UTC standard, generally, will consider CMOS (hardware clock) time a UTC time (GMT, Greenwich time) and make an adjustment to it while setting the System time on boot according to your time zone.

[2] カーネルにおけるタイマー事情 ~第2回 カーネル内の時刻/時間関連サブシステム~ | VA Linux Systems Japan株式会社 ( ()) http://www.valinux.co.jp/technologylibrary/document/linuxkernel/timer0002/

[14] OpenVMS マニュアル | HPE 日本 () http://h50146.www5.hpe.com/products/software/oe/openvms/manual/v83/html/C_RTL1/docu_031.html

OpenVMS Version 7.0 以降, HP C RTL では日付/時刻サポート・モデルがローカル時刻ベースのモデルから UTC (協定世界時) ベースのモデルに変更されました。この結果,以前は実装することができなかった ANSI C/POSIX 機能を HP C RTL で実装することができるようになりました。 UTC 時刻ベースのモデルを導入したことで, HP C RTL は Tru64 UNIX の時刻関数の動作とも互換性を保持することができるようになりました。

[19] ゲーム内時間とWindows時間が連動して遅れる | 知識王(質問掲示板) | マビノギ () http://mabinogi.nexon.co.jp/community/knowledgeContent.asp?ty=&c1=4&c2=24&lv=1&od=&ix=14658&p=15

試しに朝Nortonをアンインストールし、mabinogiをやってみたら時間がずれなかったので、他のメーカーのものに切り替えたらこの問題は解決しました。

[21] IBM Knowledge Center - 時刻に関連した概念 () https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_72/rzati/rzatitime.htm

[27] IBM PC Real Time Clock should run in UT, , https://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html

[26] RealTimeIsUniversalの落とし穴にはまった: エンジニア徒然草, http://mitaka1954.cocolog-nifty.com/blog/2012/01/realtimeisunive.html

[22] Windows搭載の一部PCで時計が1時間早まる不具合が発生。MSが修正を発表するも原因は非公表 | スラド () https://srad.jp/story/17/04/05/054238/

[24] IROIRO 1999a () https://web.archive.org/web/20000418193849/http://www.asahi-net.or.jp:80/~ez3k-msym/iroiro99a.htm

まずシステム時計だが, Windows 95 ではタイムゾーンを変えても見かけの時刻は変化しないので, たとえばノートマシンを持って日本から米国に移動した場合, まずタイムゾーンを変えて, しかる後に時刻も合わせ直さなければならない。 いっぽう Windows NT 4.0 では, タイムゾーンを変更すれば, 自動的に時刻も変わってくれる。

次にファイルの時刻だが, Windows NT で NTFS を使った場合, タイムスタンプは UTC (GMT) で記録されているので, タイムゾーンを変えると自動的にファイルのタイムスタンプも変わる。 いっぽう (NT でも Win95/98 でも) FAT の場合はローカルタイムで記憶されているので, タイムゾーンを変えてもファイルの(見かけの)タイムスタンプは変わらない。

ただし, Win32 API レベルでは, ファイルの日付はファイルシステムにかかわらず常に UTC で得られる。 ローカルタイムを得るには FileTimeToLocalFileTime API を呼んで変換してやらなければならない。

気になるのが CD-ROM である。 ISO 9660 では, タイムスタンプをローカルタイム + 時差(15分単位) を記録することになっている。 しかしこの時差の扱いは OS によって違うような気がする(未調査)。

[29] IBM PC Real Time Clock should run in UT, , https://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html

[30] RealTimeIsUniversal bug in Vista, https://social.msdn.microsoft.com/Forums/en-US/0b872d8a-69e9-40a6-a71f-45de90c6e243/realtimeisuniversal-bug-in-vista?forum=tabletandtouch

[28] RealTimeIsUniversalの落とし穴にはまった: エンジニア徒然草, http://mitaka1954.cocolog-nifty.com/blog/2012/01/realtimeisunive.html