DateTime(Int64)  将 DateTime 结构的新实例初始化为指定的刻度数。

public DateTime (long ticks);

参数

ticks  Int64

一个日期和时间,以公历 0001 年 1 月 1 日 00:00:00.000 以来所经历的以 100 纳秒为间隔的间隔数来表示。

今天遇到这个问题,想知道ticks 到底有多大,1 ticks 相当于 100纳秒(1纳秒是1秒的10亿分之一),有如下关系

1秒 = 1000000000 纳秒;

1 ticks = 100 纳秒;

1 秒= 10000000 ticks ;

问题1 .2011/12/24 9:41:40 到 1970/1/1 0:00:00 有多少秒?

运行结果:1324719700

    DateTime dt4 = new DateTime(1970, 1, 1);
    TimeSpan d = DateTime.Parse("2011/12/24 9:41:40") - dt4;
    long seconddiff = d.Ticks / 10000000;
    Console.WriteLine(seconddiff);

问题2 。反过来进行运算

            DateTime dt = new DateTime(1970, 1, 1);

            DateTime dt1 = new DateTime(DateTime.MaxValue.Ticks);
            DateTime dt2 = new DateTime(dt.Ticks + 13247197000000000);
            Console.WriteLine(dt.ToString("yyyy/MM/dd hh:mm:ss"));

            Console.WriteLine(DateTime.MaxValue.Ticks+"__"+dt1.ToString("yyyy/MM/dd hh:mm:ss"));
            Console.WriteLine(DateTime.MinValue.Ticks+"__"+dt2.ToString("yyyy/MM/dd hh:mm:ss"));

运行结果:2011/12/24 9:41:40

12-28 17:51