回答編集履歴

2

タイムゾーンの変換処理を変更

2019/07/30 23:32

投稿

draq
draq

スコア2577

test CHANGED
@@ -32,13 +32,13 @@
32
32
 
33
33
  sendData[0] = 0xB;
34
34
 
35
- udp.Send( sendData, 48, "time.windows.com", 123 );
35
+ udp.Send(sendData, 48, "time.windows.com", 123);
36
36
 
37
37
 
38
38
 
39
39
  // NTPサーバから日時データ受信
40
40
 
41
- var recieveData = udp.Receive( ref ip );
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
- recieveData[40] * Math.Pow( 2, ( 8 * 3 ) ) +
49
+ receiveData[40] * Math.Pow(2, (8 * 3)) +
50
50
 
51
- recieveData[41] * Math.Pow( 2, ( 8 * 2 ) ) +
51
+ receiveData[41] * Math.Pow(2, (8 * 2)) +
52
52
 
53
- recieveData[42] * Math.Pow( 2, ( 8 * 1 ) ) +
53
+ receiveData[42] * Math.Pow(2, (8 * 1)) +
54
54
 
55
- recieveData[43] );
55
+ receiveData[43]);
56
56
 
57
57
 
58
58
 
59
- var now = new DateTime( 1900, 1, 1 ).AddSeconds( totalSeconds );
59
+ var utcTime = new DateTime(1900, 1, 1).AddSeconds(totalSeconds);
60
60
 
61
61
 
62
62
 
63
- // グリニッジ標準時から日本時間への変更
63
+ // 協定世界 (UTC) からローカルタイムゾーンへの変更
64
64
 
65
- now = now.AddHours(9);
65
+ var localTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, TimeZoneInfo.Local);
66
-
67
-
68
-
69
- now.Dump();
70
66
 
71
67
  ```

1

ソースの参照先URLを追記しました。

2019/07/30 23:32

投稿

draq
draq

スコア2577

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