質問するログイン新規登録

回答編集履歴

3

追記

2016/02/24 11:30

投稿

miyabi-sun
miyabi-sun

スコア21501

answer CHANGED
@@ -18,8 +18,14 @@
18
18
  [http://oswald.hatenablog.com/entry/2014/01/27/195427](http://oswald.hatenablog.com/entry/2014/01/27/195427)
19
19
 
20
20
  これで、このパソコンは日本の時刻(JST)を使う事が確定します。
21
- これがどう影響するというと…
21
+ なんでそんな設定するねんという話ですが、
22
22
 
23
+ 全てのマシンはJSTがUTC+9時間という事を知っているからです。
24
+ UTCさえ分かればJSTを何時でも求める事が可能です。
25
+ dateコマンド打ってJSTが表示されるのは、人間様の都合で「俺日本人だからUTCで出されても困るんだよ、だからJSTで表示してねお願い」と言ってるだけの話です。
26
+
27
+ ---
28
+
23
29
  > 1. どこかのサーバーでUTCではなくJSTを配布しているサーバーはないのでしょうか?
24
30
 
25
31
  UTCのみ

2

文章修正

2016/02/24 11:30

投稿

miyabi-sun
miyabi-sun

スコア21501

answer CHANGED
@@ -27,20 +27,14 @@
27
27
 
28
28
  > 2. 何かのサービスで時刻を参照するようなときはBIOSの時刻かNTPの時刻どっちをとってきているのでしょうか?例えばmysqlなどのテーブルに時間を書き込むときの時間の参照先がbios時刻なのかntp時刻なのか。
29
29
 
30
- マシンの時刻は1個だけです。
30
+ NTPの時刻
31
+ マシンが持ってる時刻はBIOSの時刻の1個のみで、パソコンに内蔵されている時計は基本的に品質が悪く数秒のズレがすぐに発生してしまいます。
31
- NTP通信した時に通信先であるNPTサーバーとのやり取りはこうなります。
32
+ なので、定期的に品質の高い時計積んだサーバー(所謂NTPサーバー)に今何時?問い合わせ教えてもらっているだけです。
32
33
 
33
- ローカルマシン「ちょっとNTP鯖さん、正しい時刻知りたいから今の時刻教えてくれ。」
34
- NTP鯖「ええと…UTCで2016/02/24 10:52:30だね。」
35
- ローカルマシン「なるほどなるほど、俺のマシンJSTだから9時間プラスして2016/02/24 19:52:30で登録しとくわ、ありがと!」
36
-
37
- NTPサーバーのタイムゾーンによらず、正確な時刻を得られるので気にする必要は皆無です。
38
-
39
34
  > 3. ntpとbiosの時刻が互いにUTCとJSTですがなにか問題は起きないのでしょうか?
40
35
 
41
- プログラミング時、単純にdate()関数等を使って文字列を無造作に取時、
36
+ NTPサーバーとの通信内容は以下のよう
42
- 時刻を気にしないで`YYYY-MM-DD hh:mm:ss`というフォーマットを使うと何処の時刻か分からずシッチャカメッチャカになるケースがあります。
43
37
 
44
- [ISO8601](https://ja.wikipedia.org/wiki/ISO_8601)という国際規格に則り`YYYY-MM-DDThh:mm:ss+09:00`というフォーマットで正しく扱うと最も問題はありませんが、
45
- それぞれのプグラム言語には時刻やタイムゾーン正しく扱う作法があますで、
38
+ ローカルマシ「ちょっとNTP鯖さん、正しい時刻知たいから今時刻教えてくれ。」
46
- 身近な詳しい方にでも聞いたり調べれば問題なく扱しょう
39
+ NTP鯖「えと…UTC2016/02/24 10:52:30だね
40
+ ローカルマシン「なるほどなるほど、俺のマシンJSTだから9時間プラスして2016/02/24 19:52:30で登録しとくわ、ありがと!」

1

誤りの修正

2016/02/24 11:06

投稿

miyabi-sun
miyabi-sun

スコア21501

answer CHANGED
@@ -22,7 +22,8 @@
22
22
 
23
23
  > 1. どこかのサーバーでUTCではなくJSTを配布しているサーバーはないのでしょうか?
24
24
 
25
+ UTCのみ
25
- 基本的にUTC、別にJST配布してるサーバーもあだろうけど気するだけ無駄
26
+ [Wikipedia](https://ja.wikipedia.org/wiki/Network_Time_Protocol)「NTPプロトコル上では協定世界時 (UTC) を使っ時刻を送受信す。」と定義されていので基本的例外はなし
26
27
 
27
28
  > 2. 何かのサービスで時刻を参照するようなときはBIOSの時刻かNTPの時刻どっちをとってきているのでしょうか?例えばmysqlなどのテーブルに時間を書き込むときの時間の参照先がbios時刻なのかntp時刻なのか。
28
29