これは私が試したことです:
DateTime now = DateTime.Now;
long timeA = now.ToBinary();
long timeB = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, now.Millisecond).ToBinary();
Debug.WriteLine("{0} {1}", timeA, timeB);
これは出力です:
-8588637543837682554 634734565017110000
timeA
とtimeB
は本質的に同じものである必要がありますが、完全に異なる(負の)バイナリに変換されます。
なぜこれが起こるのですか?ToBinary()
直接呼び出すとDateTime.Now
異なる結果が得られるのはなぜですか?
編集:私の問題が誤解された(したがって反対票を投じられた)ので、私は実際の質問をよりよく表すように私の投稿を修正しました。問題はDateTime.Kindにあり、それが実際の問題であり、2つの連続するDateTime.Now呼び出しの小さな違いではありませんでした。