回答編集履歴
2
タイムゾーンの変換処理を変更
test
CHANGED
@@ -32,13 +32,13 @@
|
|
32
32
|
|
33
33
|
sendData[0] = 0xB;
|
34
34
|
|
35
|
-
udp.Send(
|
35
|
+
udp.Send(sendData, 48, "time.windows.com", 123);
|
36
36
|
|
37
37
|
|
38
38
|
|
39
39
|
// NTPサーバから日時データ受信
|
40
40
|
|
41
|
-
var reci
|
41
|
+
var receiveData = udp.Receive(ref ip);
|
42
42
|
|
43
43
|
|
44
44
|
|
@@ -46,26 +46,22 @@
|
|
46
46
|
|
47
47
|
var totalSeconds = (long)(
|
48
48
|
|
49
|
-
reci
|
49
|
+
receiveData[40] * Math.Pow(2, (8 * 3)) +
|
50
50
|
|
51
|
-
reci
|
51
|
+
receiveData[41] * Math.Pow(2, (8 * 2)) +
|
52
52
|
|
53
|
-
reci
|
53
|
+
receiveData[42] * Math.Pow(2, (8 * 1)) +
|
54
54
|
|
55
|
-
reci
|
55
|
+
receiveData[43]);
|
56
56
|
|
57
57
|
|
58
58
|
|
59
|
-
var
|
59
|
+
var utcTime = new DateTime(1900, 1, 1).AddSeconds(totalSeconds);
|
60
60
|
|
61
61
|
|
62
62
|
|
63
|
-
//
|
63
|
+
// 協定世界時 (UTC) からローカルタイムゾーンへの変更
|
64
64
|
|
65
|
-
|
65
|
+
var localTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, TimeZoneInfo.Local);
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
now.Dump();
|
70
66
|
|
71
67
|
```
|
1
ソースの参照先URLを追記しました。
test
CHANGED
@@ -9,6 +9,8 @@
|
|
9
9
|
|
10
10
|
|
11
11
|
NTPサービスへ現在時刻を問い合わせるには以下のようにすればいいです。
|
12
|
+
|
13
|
+
※ソースは[こちら](http://nonsoft.la.coocan.jp/SoftSample/CS.NET/SampleNtpDateTime.html)から必要な部分のみ抜き出して改変しました。
|
12
14
|
|
13
15
|
NTPサービスは他に変更した方がいいかもしれません。
|
14
16
|
|