前提・実現したいこと
pythonでPC時刻とNTP時間のズレを検出したいです。
下記ソースコードで動いてはいるようですが、
結果として出力される数値が、0.1[s]以下となっています。
NICTの下記サイトによると、0.2[s]程度ズレているようで結果が異なっています。
https://www.nict.go.jp/JST/JST5.html
なぜNICTとズレが生じるのか教えてください。
発生している問題・エラーメッセージ
#結果 NTP time: 1637645700.328086 開始時刻: 2021-11-23 14:35:00.318136 終了時刻: 2021-11-23 14:35:00.362561 NTP時刻 : 2021-11-23 14:35:00.328086 ズレ時間: -0.00995016098022461
該当のソースコード
python
1from time import sleep 2from bs4.element import nonwhitespace_re 3import ntplib 4from datetime import datetime 5import time 6 7def get_ntp_time() -> datetime: 8 ntp_pool = 'ntp.nict.jp' 9 call = ntplib.NTPClient() 10 response = call.request(ntp_pool, version=3) 11 try: 12 # t = datetime.fromtimestamp(response.orig_time) 13 t = response.orig_time 14 return t # Use the time of the first NTP server that returns a time 15 except: # no response from server 16 pass 17 18#PC時間:start_time 19start_time = time.time() 20#NTP時間:now 21now = get_ntp_time() 22#PC時間:end_time 23end_time = time.time() 24 25#runat = datetime(now.year, now.month, now.day, now.hour, now.minute + 1, 0) # Arbitrary, put 8:30 here 26print("NTP time:", now) 27 28dl_t = start_time - now 29 30start_time = datetime.fromtimestamp(start_time) 31fomatted_time = start_time.strftime("%H:%M:%S.%f") 32 33end_time = datetime.fromtimestamp(end_time) 34fomatted_time = end_time.strftime("%H:%M:%S.%f") 35 36now = datetime.fromtimestamp(now) 37fomatted_time = now.strftime("%H:%M:%S.%f") 38print('開始時刻:',start_time) 39print('終了時刻:',end_time) 40print('NTP時刻 :',now) 41print('ズレ時間:',dl_t)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/24 11:30