次のコード (C#) が false を返す理由:
DateTime d = DateTime.Now;
d.Ticks == d.ToUniversalTime().Ticks; // false
DateTime の目盛りは UTC 時間に基づいていると思います。DateTime.Ticksの MSDN ページには、次のように記載されています。
このプロパティの値は、DateTime.MinValue を表す 0001 年 1 月 1 日の真夜中の 12:00:00 から経過した 100 ナノ秒間隔の数を表します。うるう秒に起因するティック数は含まれません。
0001 年 1 月 1 日の午前 0 時 .. どのタイムゾーンですか?
DateTime.Ticks がタイムゾーンに依存するのはなぜですか?
ティックが異なるという事実が、次のコードも false を返す理由だと思います
DateTime d = DateTime.Now;
d == d.ToUniversalTime(); // false
DateTime.Equalsに関する MSDN doc の言及
Ticks プロパティの値が等しい場合、t1 と t2 は等しくなります。それらの Kind プロパティ値は、等しいかどうかのテストでは考慮されません。
私の期待は、タイムゾーンに関係なく、DateTime.Ticks が等しいということでした。
どのタイムゾーンで発生したかに関係なく、2 つの瞬間は等しいと思います。私の期待は間違っていますか?