質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
NTP

NTP (Network Time Protocol) とは、時計の時刻をネットワーク上のNTPサーバーの持つ正しい時刻に同期するためのプロトコルです。

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1389閲覧

NICTのWebページから現在時刻を取得し、DateTime.Nowのように使用したい

monomac

総合スコア20

NTP

NTP (Network Time Protocol) とは、時計の時刻をネットワーク上のNTPサーバーの持つ正しい時刻に同期するためのプロトコルです。

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/01/02 10:33

アプリ開発をしているのですが、ユーザーに自由に変更されない時刻データを取得する方法を探しています。
http://gamexunity.blogspot.com/2017/06/unitynicthttp-get.htmlのページを参考に時刻データは取得できたのですが、
それを返り値として取得するやり方がわからずに困っています。

ソースコード

c#

1namespace Hoge.hogehoge 2{ 3 4 public class GetTime : MonoBehaviour 5 { 6 [Serializable] 7 public class hogehogehoge 8 { 9 public string a; 10 public double st; 11 public double c; 12 } 13 14 public int Time; 15 16 17 public static int Now() 18 { 19 GetTime GetTime = new GetTime(); 20 GetTime.StartCoroutine(GetTime.Get()); 21 return GetTime.Time; 22 } 23 24 25 26 public IEnumerator Get() 27 { 28 string url = "https://ntp-a1.nict.go.jp/cgi-bin/json"; 29 WWW www = new WWW(url); 30 yield return www; 31 if (www.error == null) 32 { 33 hogehogehoge hoge = JsonUtility.FromJson<hogehogehoge>(www.text); 34 Time = (int)hoge.st; 35 } 36 } 37 } 38 39 40} 41

具体的には上記のコードが書かれたアタッチされていないスクリプトがあり、
別スクリプトから

int Time = GetTime.Now();

のような形で使いたいのですが、
今のままだと、GetTime.StartCoroutine(GetTime.Get());の所で、NullReferenceExceptionのエラーが出てしまいます。
エラーの解決方法がわからずに困っています。
そもそもプログラムの組み方などの問題なのでしょうか?
どなたか助けていただけると幸いです。
よろしくおねがいします。

使用しているUnityのパージョンは2018.2.17f1
OSはMacを使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

回答じゃないです
一般論で言って、エンドユーザに他社管理の NTP サーバを参照させるのは、マナー面でも設計面でも良い手法ではありません。
自身で NTP サーバをたてそちらを参照するように変更することが必要です。

まずは自身で NTP サーバをたてるところから始めてください。

投稿2019/01/02 10:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/02 11:42

まぁ、その注意書きも NTP サーバの同期ポリシーなので、クライアントだと、WindowsXP のことが記載されていますが、事前相談ありの場合でも、ポーリング間隔は1週間(604,800秒)とかが許容範囲なんじゃないですかねぇ。。。
退会済みユーザー

退会済みユーザー

2019/01/02 12:00

Windows XP の初期設定が1週間だから変更したい場合は MS社で調べてねじゃね > 変更したい場合には、Microsoft社の技術情報を参照してください。
退会済みユーザー

退会済みユーザー

2019/01/02 12:05

しかし質問者の使い方だと > 無断で制限を超えた場合には、利用を拒絶する場合があります。 時間でないぞどうなってんだ!! とかでそうだな
退会済みユーザー

退会済みユーザー

2019/01/02 12:06

MS との協議でそういう仕様で XP が作られたのかなぁと勝手解釈。 まぁ、XP 時代のアクセスポリシーなんで、ただの脅しコメントですよw
退会済みユーザー

退会済みユーザー

2019/01/02 12:09

te2ji 不正トラックバック登録されまくった関係で処理が鈍足になったとあるサイトは「さくらインターネット」では実際に制限されたな。
maisumakun

2019/01/02 12:12

マイクロソフトのOSの場合、デフォルトで「マイクロソフト自身のNTPサーバ」になっていたので、そこの負荷軽減のためではないかと
退会済みユーザー

退会済みユーザー

2019/01/02 12:21 編集

> asahina1979 さん 設計的には、Botnet による DDoS と変わらんので、怒られるときは結構激しく怒られると思います。 クライアント数が怒られるとこまで行くかは不明だけど。
退会済みユーザー

退会済みユーザー

2019/01/02 12:20

> maisumakun さん まぁ、他社リソースをデフォルトにはしないですよね^^;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問