这是我尝试过的:
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
and本质上timeB
应该是相同的东西,但是它们被转换为完全不同的(负)二进制文件。
为什么会这样?为什么直接调用ToBinary()
会DateTime.Now
产生不同的结果?
编辑:由于我的问题被误解(因此被否决),我已更正我的帖子以更好地代表真正的问题。问题出在 DateTime.Kind 中,这是真正的问题,而不是两个连续 DateTime.Now 调用中的微小差异。