Mono 2.10.9 の Linux ボックスでプログラムを実行しています。log4net を使用して、Windows 7 ボックスのプログラムにログを記録します。私の Linux システム クロックは、Windows マシンと同様に現地時間に設定されています。以下を実行すると、各マシンでわずかに異なる結果が得られます。
DateTime now = DateTime.Now;
Console.WriteLine(String.Format("{0} - Kind {1}", now, now.Kind));
Windowsでは、私は得る
2013 年 5 月 28 日 8:39:09 PM - 親切なローカル
そしてLinuxでは私は得る
0/735016/0001 8:39:45 PM - 親切なローカル
Mono では変換が壊れているようですが、それはまた別の問題です。
Linux マシンから受け取ったLoggingEvent
オブジェクトのTimeStamp
フィールドには、実際にはローカル時刻ではなく UTC 時刻が含まれています。しかし、TimeStamp.Kind
プロパティはLocal
!
Windows で発生したログ イベントは実際にはローカルであるのに対し、Mono からのログ イベントは UTC であり、私には違いがわからないため、これが問題を引き起こしていますKind
。離れていると、5時間離れているように見えます。
これを修正するにはどうすればよいですか?