I 2つのDateTime
値を有する:比較日付時刻
DATE1 < - 種類に{15-07-13夜08時45分10秒を} =未指定
DATE2 < - {15から07 -13 20:45:10} Kind = UTC
これらの2つの日付を比較すると、2つの日付は同じです。
if (DateTime.Compare(date1, date2)!=0)
...
誰かが説明できる理由はありますか?
少し奇妙な私には:UTCに(指定されていないようなものです)日付1を変換するとき、私ははっきりと日付が異なることを参照してください。
date1.ToUniversalTime() - > {15- 7月13日18時45分10秒} DateTimeKind
のドキュメント(強調は私です)からの親切= UTC
回避策は、カスタム比較子を書きたいかもしれませんが、 'パブリッククラスFullDateTimeEqualityComparerのようなものを:EqualityComparer { public override bool等しい(DateTime dt1、DateTime dt2){return dt1.Kind == dt2.Kind && dt1 == dt2; } public override int GetHashCode(DateTime dt){return dt.Kind.GetHashCode()^ dt.GetHashCode(); }} '。 –
変換の最終ポイントについて未指定の変換は厄介です... ToLocalTimeを変換する場合、変換はUTCであるとみなされます。逆に、ToUniversalTimeを変換する場合、それはローカルであるとみなされます。だからどちらの方法でも変換が行われます。 – Cary