DateTime ToUniversalTime()更改Ticks值

时间:2013-12-18 22:16:33

标签: .net datetime

当我在DateTime对象上调用ToUniversalTime()时,该方法似乎返回一个新的DateTime对象,完全代表不同的时间。我预计它会跨越时区来进行武装。

代码

DateTime dt = new DateTime(635229891600000000);

Console.WriteLine(dt.ToString());
Console.WriteLine(dt.ToUniversalTime().ToString());

输出

12/18/2013 6:46:00 PM
12/19/2013 12:46:00 AM

这正是我所期待的。

但是,如果我查看DateTime对象的Ticks值

DateTime dt = new DateTime(635229891600000000);

Console.WriteLine(dt.Ticks.ToString());
Console.WriteLine(dt.ToUniversalTime().Ticks.ToString());

输出

635229891600000000
635230107600000000

表示ToUniversalTime的输出实际上与输入的Ticks值不同。

Ticks属性表示自常量DateTime.MinValue以来100纳秒间隔的数量。

根据MSDN documentationToUniversalTime方法返回“Kind属性为Utc且其时间等于当前DateTime对象值的UTC的对象”。如果两个DateTime对象具有不同的Ticks值,那么它们如何是UTC等价的,因此表示不同的时间?

0 个答案:

没有答案