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