/
328.txt
71 lines (51 loc) · 3.83 KB
/
328.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
[13] [[計算機]]には、[[時計]]があります。[DFN[[RUBYB[システム時計]@en[system clock]]]]などと呼ばれています。
* 動作
[4] 次のような理由で、[[時計]]の値は非直感的に変化することがあります。
[FIG(list)[
- [5] [[時計]]はそもそも正確ではありません。
[[温度]]など[[物理的]]な理由で時刻の刻み幅が微妙に変化することがあります。
- [7] [[NTP]] により[[時刻]]が修正されることがあります。時間を飛ばしたり、過去に戻したりすることがあります。
- [6] [[利用者]]が手動で[[時刻]]を設定することがあります。時間を飛ばしたり、過去に戻したりすることがあります。
- [8] [[計算機]]・[[VM]] が一旦停止状態となり、その後復帰した時、時間が一気に進む (ようにみえる) ことがあります。
- [9] 時刻表示上、[[閏秒]]は存在しないものとして扱われるのが一般的です。
補正のため時刻の刻み幅が変化したり、一度に進んだり、過去に戻ったりすることがあります。
- [11] [[UTC]] でなく[[地方時][地方標準時]]を用いる場合、[[夏時刻]]の実施や[[標準時]]の変更などにより、
時間を進めたり戻したりすることがあります。
]FIG]
;; [3] [[time skew]]、[[time drift]] も参照。
;; [10] [[単調増加時計]]も参照。
* 時間帯
[15] [[地方時][地方標準時]]に設定する場合と、[[UTC]] に設定する場合があります。
;; [16] [[UTC]] に設定する場合、[[プラットフォーム]]側で必要に応じて[[利用者]]の[[時間帯]]に変換して[[表示]]します。
[17] 古めのシステムは、[[地方時][地方標準時]]を採用していることが多いです。
[[Windows]] も[[地方時][地方標準時]]を使っています。
[18] 最近のシステムは、[[UTC]] を採用していることが多いです。
多くの [[Unix]] 系システムは [[UTC]] を使っています。
* API
[12]
[FIG(short list)[
- [CODE[gettimeofday]]
- [CODE[clock_gettime]]
- [CODE(perl)[time][time (Perl)]]
- [[時計 (Web)]]
]FIG]
* メモ
[FIG(quote)[
[FIGCAPTION[
[1] [CITE@en[Time - ArchWiki]]
( ([TIME[2016-06-18 13:12:32 +09:00]]))
<https://wiki.archlinux.org/index.php/time>
]FIGCAPTION]
> 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.
]FIG]
[2] [CITE@ja[カーネルにおけるタイマー事情 ~第2回 カーネル内の時刻/時間関連サブシステム~ | VA Linux Systems Japan株式会社]]
( ([TIME[2016-06-20 16:07:53 +09:00]]))
<http://www.valinux.co.jp/technologylibrary/document/linuxkernel/timer0002/>
[FIG(quote)[
[FIGCAPTION[
[14] [CITE[OpenVMS マニュアル | HPE 日本]]
([TIME[2017-01-26 22:15:04 +09:00]])
<http://h50146.www5.hpe.com/products/software/oe/openvms/manual/v83/html/C_RTL1/docu_031.html>
]FIGCAPTION]
> OpenVMS Version 7.0 以降, HP C RTL では日付/時刻サポート・モデルがローカル時刻ベースのモデルから UTC (協定世界時) ベースのモデルに変更されました。この結果,以前は実装することができなかった ANSI C/POSIX 機能を HP C RTL で実装することができるようになりました。 UTC 時刻ベースのモデルを導入したことで, HP C RTL は Tru64 UNIX の時刻関数の動作とも互換性を保持することができるようになりました。
]FIG]