※ このページは過去のものです

以下の「http/httpsを利用した時刻配信」のサービスは2022年3月31日に終了しました。


0. クライアント開発者向け情報(ガイドライン)

1IPアドレスからのアクセスについては1秒以上の間隔を空けてアクセスをお願いします。

*現在多くのアクセスを頂いておりますが、
アクセス過多が発生した場合には予告なくサービスの停止を行います。


1. https/http を介してアクセスされる場合

次のURLをご利用ください。

各種タイムスタンプ(NTP/POSIX/JSON/JSONP/時分秒形式)を文字列で提供しています。
いずれのサービスも、ヘッダ中に"Access-Control-Allow-Origin:*"を含みます。
なお、現在は試行中ですので、不具合がございましたらご連絡ください。

タイムスタンプ URL オプション
NTP https://ntp-a1.nict.go.jp/cgi-bin/ntp      
http://ntp-a1.nict.go.jp/cgi-bin/ntp
https://ntp-b1.nict.go.jp/cgi-bin/ntp
http://ntp-b1.nict.go.jp/cgi-bin/ntp
POSIX https://ntp-a1.nict.go.jp/cgi-bin/jst      
http://ntp-a1.nict.go.jp/cgi-bin/jst
https://ntp-b1.nict.go.jp/cgi-bin/jst
http://ntp-b1.nict.go.jp/cgi-bin/jst
JSON https://ntp-a1.nict.go.jp/cgi-bin/json ?Time(*1)
http://ntp-a1.nict.go.jp/cgi-bin/json
https://ntp-b1.nict.go.jp/cgi-bin/json
http://ntp-b1.nict.go.jp/cgi-bin/json
JSONP https://ntp-a1.nict.go.jp/cgi-bin/jsont ?Time(*1)
http://ntp-a1.nict.go.jp/cgi-bin/jsont
https://ntp-b1.nict.go.jp/cgi-bin/jsont
http://ntp-b1.nict.go.jp/cgi-bin/jsont
時分秒 https://ntp-a1.nict.go.jp/cgi-bin/time ?TZ (*2)
http://ntp-a1.nict.go.jp/cgi-bin/time
https://ntp-b1.nict.go.jp/cgi-bin/time
http://ntp-b1.nict.go.jp/cgi-bin/time
(*1)UNIX Time(POSIX仕様) 秒、ミリ秒形式
(*2)TZ:タイムゾーン(一覧

2. JSONP形式時刻情報の利用

・JSONP 形式時刻情報の概要

http://ntp-a1.nict.go.jp/cgi-bin/jsont?1232963971.248

上記のURLでサーバにアクセスすると、次のような文字列が返されます。

jsont( { "id": "ntp-a1.nict.go.jp",
"it": 1232963971.248,
"st": 1232963971.920,
"leap": 33,
"next": 1230768000,
"step": 1 } )

それぞれの値の意味は、次の通りです。

id: "ntp-a1.nict.go.jp" サーバID
it: 1232963971.248 発信時刻(クライアントから送信された時刻)
st: 1232963971.920 サーバ時刻
leap: 33 next 以前の時点での UTC と TAI の差(秒)
next: 1230768000 次、または最後のうるう秒イベント時刻
step: 1 次、または最後のうるう秒イベントが挿入の場合 1、削除の場合 -1

コールバック関数 jsont(json) 中では、json["id"]、json["it"]、json["st"]にそれぞれ、"ntp-a1.nict.go.jp"、1232963971.248、1232963971.920 が入ることになります。
なお、時刻表記は UNIX Time(POSIX仕様) で、少数以下3桁(ミリ秒まで)となっています。
また、クライアントからの発信時刻を使わない場合は、URLの"?"以下は省略できます。


・JSONP 形式時刻情報の利用方法

下の html ファイルを sample.html に保存し、Web ブラウザで実行してみてください。
alert ウィンドウがポップアップし、サーバ ntp-a1.nict.go.jp から供給された時刻が表示されます。


<html>
<head>

<script type="text/javascript">
function jsont(json)
{
var tm = new Date( json["st"] * 1000 );
alert( tm.toLocaleString() );
}
</script>

<script type="text/javascript" src="http://ntp-a1.nict.go.jp/cgi-bin/jsont">
</script>

</head>
</html>

「日本標準時表示ページ(JSONP版)」では、リクエストの送信時刻とサーバ時刻、レスポンスの到着時刻の3つから、ローカルクロックとサーバ時刻との差を推定しています。
また、複数のサーバにアクセスすることにより、取得した時刻情報のチェックおよび、平均化による時刻誤差低減を行っています。

Page Top


3. 過去のお知らせ

(続々)http による時刻情報取得について 2011.11.25
(続)http による時刻情報取得について 2010.02.18
「地域標準時との差」について 2009.02.02
JSONP 版のテスト運用について 2008.12.02
サーバの変更について 2007.12.21
http による時刻情報取得について 2007.04.27
うるう秒対応について 2005.12.05
大型数字バージョン設置 2005.11.30
「日本標準時表示ページ」の動作概要 2005.05.26
safariへの対応 2005.05.26
表示精度の向上 2004.04.03
ドメイン名変更に関する補足 2004.03.11
日本標準時表示ページへの機械的アクセスについて 2004.03.04


(続々)http による時刻情報取得について 2011.11.25


NICT http時刻供給サービスに JSON 形式のサービスが追加され、ヘッダに、
"Access-Control-Allow-Origin:*" が付加されるようになりました。
詳しくはこちら

(続)http による時刻情報取得について 2010.02.18


NICT 公開 NTP サービスと同列のサービスとして、https/http による時刻供給サービスが 開始されており、「日本標準時表示ページ」も、この JSONP を利用したものに移行しました。
「https/http による時刻供給サービス」 に移行されますようお願いします。

「地域標準時との差」について 2009.02.02


PCの時計を合わせたばかりでも、「あなたのコンピュータの内蔵時計」の「地域標準時との差」が0にならないことがあります。

  • JSONP 版では表示が0.1秒単位になっていますが、ネットワークの状況によっては、それ以上の時刻誤差が出ます。 再読み込みを行うと、DNS のキャッシュ効果等により、若干誤差が減ることが多いようです。
  • Windows XP 等に標準装備されている「日付と時刻のプロパティ」「インターネット時刻」によって手動で 時刻合わせを行った場合、その直後でも時刻誤差が生じていることがあるようです。他のPC時計合わせソフトを 試してみてください。
  • 時計合わせを行っても、そのままでは表示に反映されません。 「再読み込み」を行うか、ブラウザの再起動を行ってください。

JSONP 版のテスト運用について 2008.12.02


従来の「日本標準時表示ページ」では、cgiプログラムによってwwwサーバの時刻をJavaScriptコードに埋め込み、 これをクライアントで実行することにより、時刻の表示を行っていましたが、この方法では、
  • wwwサーバの時刻に依存するため、wwwサーバの十分な時刻管理が必要
  • cgiプログラムでwwwサーバの時刻が安定しているかをチェックしているため動作が重い
  • cgiプログラムがJavaScript/htmlソースを書き換える構成のため、保守がやりづらい
  • サーバクライアント間の伝送遅延時間がそのまま時刻誤差となる
  • キャッシュされたコンテンツでは、正しい時刻が表示されない
  • 他組織や機構内他部署が「時刻表示」を設置する場合、wwwサーバの十分な時刻管理が困難
といった問題がありました。

これらを解決するため、日本標準時関連部署で実施する「インターネット時刻供給サービス」にJSONP(JavaScript Object Notation with Padding)形式でのサービスを追加し、「日本標準時表示ページ」の JavaScript プログラムから、JSONP 形式の時刻情報を動的に取得する方法に変更しました。

現在、テスト中のものが、
http://www2.nict.go.jp/out-promotion/jsys/JST/JST.html (通常版)
http://www2.nict.go.jp/out-promotion/jsys/JST/JST2.html (でか文字版)
に設置してあります。 (参考文献) (作者)

JSONP形式での時刻供給サービスにつきましては、
http://www2.nict.go.jp/aeri/sts/tsp/PubNtp/clients.html をご参照ください。

サーバの変更について 2007.12.21


wwwサーバの負荷を分散するために、「日本標準時表示ページ」を提供するサーバが www2 から www3 に変更となりました。ブックマークされている方は、新しい URL でブックマークを更新していただけますようお願いします。なお、旧 URLへのアクセスは、リダイレクトされます。


http による時刻情報取得について 2007.04.27


パソコン等の時計合わせには、NTP ないしは SNTP が利用されるのが普通ですが、ファイアウオール等の制限でこれらが使えないケースもあります。こういったユーザのために、http による時刻取得機能を持った時計合わせソフトが作成されています。
 このような目的に利用可能な時刻ソースとしては、以下のようなものがあります。

●http://www2.nict.go.jp/cgi-bin/JST.cgi
 html body 中の「コメント」部分にある時刻文字列を切り出すことにより時刻情報が得られます。
 このような変則的なフォーマットになっているのは、もともと人が見るために作成された「日本標準時表示ページ」が、パソコン時計合わせに流用されていたため、それらの可用性を継続させるためです。
 古いクライアントソフトでは、http://www2.nict.go.jp/cgi-bin/JST.pl を利用する設定のものもありましたが、こちらについてはサーバ負荷が大きいため、定期的な時刻の自動取得には利用しないで下さい


●http ヘッダの Date: フィールドを使う
 通常の www ページでも、サーバーから送られてくるデータのヘッダには Date: フィールドがあり、これによりサーバの時刻情報を得ることができます。但し、サーバの時計がどのように管理されているかは不明なケースが多いので、その点には注意が必要です。また、Date: フィールドで得られるのは秒単位の情報ですから、正確な時計合わせには不向きです。
 この方法によるソフトウエアは、htp (HTTP Time Protocol), htptime, htpd や、パソコン時計合わせソフトに組み込まれたものなどがあります。

●NICT Internet Time Transfer Service を利用する
 NICT public NTP service と同じラックにあるサーバからも http, https で時刻情報が取得できる予定です。
 現在、テスト中ですので、仕様が変更になったり、サービスが中断することがあります。

うるう秒対応について 2005.12.05


 日本標準時 2006年1月1日 8時59分59秒の直後にうるう秒が挿入されます。 (うるう秒詳細情報)
 時刻表示ページのプログラムは、うるう秒挿入に対応していますが、表示される時刻は、クライアント側のOS、時計合わせソフト、 JavaScript 実行環境等に依存しますので、すべてのケースで正しく動作するわけではありません。 もともと、これらの時刻表示ページは秒単位の正確さを保障しているものではありませんが、「うるう秒挿入の様子を理解する助けになる」表示動作を「できるだけ多くの環境で実行できる」ことを目標に、うるう秒対応を行っています。

下記は、多様な実行環境、サーバ負荷の問題などからくる制限事項です。
 ・表示継続中にクライアントの内蔵時計が修正された場合、時刻表示に誤差が生じます。
 ・うるう秒挿入中(1秒間)に行われたアクセスでは、1秒の表示誤差が出ます。
 ・うるう秒挿入中(1秒間)の「地域標準時との差」表示は、1秒の表示誤差が出る場合があります。
前2者につきましては、再読み込みすれば正常な表示となります。

大型数字バージョン設置 2005.11.30


 日本標準時のみを、大型のGIF画像による数字で表示するページを設置しました。

「日本標準時表示ページ」の動作概要 2005.05.26


 このプログラムは Perl で書かれており、ユーザからのアクセスに応じて、CGI から起動されます。
 起動後、まず、Web サーバの時計が合っていることを確認します。これは、ntpd のステータスをチェックすることによって行っており、安定が確認できなかった場合には、ユーザ画面にその旨表示されます。
 次に、JavaScript プログラムを含む HTML ドキュメントのテンプレートを読み込み、「現在時刻」「うるう秒挿入情報」などの部分を書き換えたものを、ブラウザに返します。
 ユーザのブラウザでは、読み込み完了時に発生する onLoad イベントで、JavaScript プログラムが起動し、時刻表示が開始されます。時計表示は、クライアント側(パソコン)の内蔵時計を基準に自走しており、サーバからの時刻情報提供は、アクセスした時点の1回だけです。

safariへの対応 2005.05.26


 Mac OS X Tiger の標準ブラウザ、safari に対応しました。
 この関係で、サーバから渡される時刻情報の表現が変更されています。

表示精度の向上 2004.04.03


 従来のプログラムでは、サーバから供給される時刻情報は秒単位で、秒未満を切り捨て、ネットワーク遅延、プログラム起動の遅延分として1秒加算したものでした。
 オリジナルプログラムの作成当時は、アナログモデムによるインターネットアクセスが主流でしたから、秒単位でも十分と考えていましたが、昨今のブロードバンド環境普及、パソコンの高速化に対応して、秒未満の情報も渡すようにプログラムを変更しました。
 新しいプログラムでは、ミリ秒単位の現在時刻に、ネットワーク遅延、プログラム起動の遅延分として100ミリ秒加算したものを使っています。
 但し、ユーザ側で表示される時刻精度は、ネットワークの混雑状況、サーバの負荷状況などに左右され、実際には1秒以上の誤差が出るケースも多いと思われます。

ドメイン名変更に関する補足 2004.03.11


 4月1日に、 crl.go.jp から nict.go.jp に変更されますが、従来のドメイン名を含むURLも、当面利用可能となる予定です。
(旧ドメイン名の利用可能期間:最長でも2004年11月30日)
 アクセス先を nict.go.jp に変更していない場合、上記期日以降アクセス(時刻情報取得)ができなくなります。

日本標準時表示ページへの機械的アクセスについて 2004.03.04


 2004年2月29日頃より、「日本標準時表示ページ」(JST Clock) へのアクセスが増加し、その影響で www.crl.go.jp,www2.crl.go.jp のレスポンスが低下するという事態に陥りました。
 上記ページへの直近1ヶ月間のアクセス数は、1000万回程度で、NTPサーバであればあまり問題にならないレベルですが、上記ページは比較的重い処理を行う cgiプログラムであり、最近のアクセス急増に耐えられない状態となりました。
 ログを解析した結果、そのアクセスの大部分は「パソコン時刻合わせソフト」からの機械的なものであることが判明しています。

 これへの対応のため、上記cgiのURL変更を行い、元のURLには、時刻文字列とURL変更の通知だけを返す軽いプログラムを設置しています。
 一部のクライアントについては、この状態で時刻取得が可能との報告が得られています。

新 URL:http://www2.crl.go.jp/cgi-bin/JST.pl  (機械的アクセス禁止)
旧 URL:http://www2.crl.go.jp/cgi-bin/JST.cgi (常識的な範囲で利用可)

HTTP による時刻取得
パソコン等の時計合わせには、NTP ないしは SNTP が利用されるのが普通ですが、ファイアウォール等の制限で、これらが使えないケースもあります。
こういったユーザの利便のため、通常のファイアウオールを通過できる http による時刻取得機能を持った時計合わせソフトがいくつか作成されており、これらがアクセスする先として、上記のURLが利用されているケースが多いようです。