是否将具有微秒的日期时间值转换为具有精确精度的 double 值?
例如。我的日期是 2017 年 7 月 3 日 10:00:00 00 Ticks 636346728000000050。当我得到 42919.4166666667 时转换为双倍。同样,我已将 50 Ticks 添加到当前日期,即。 2017 年 7 月 3 日 10:00:00 00 Ticks 636346728000000100 转换为 double,也得到相同的 double 值,但 ticks 值已添加到日期中。
我是通过这个方法转换成double的date.ToOADate()
谁能解决这个问题?
提前致谢:)
最佳答案
OLE 自动化日期不能表示 50 个刻度。这段代码:
DateTime d1 = DateTime.Parse("3 July 2017 10:00:00");
DateTime d2 = d1.AddTicks(100);
double o2 = d2.ToOADate();
Console.WriteLine(o2);
DateTime d3 = d1.AddTicks(1000);
double o3 = d3.ToOADate();
Console.WriteLine(o3);
DateTime d4 = d1.AddTicks(10000);
double o4 = d4.ToOADate();
Console.WriteLine(o4);
生成输出:
42919,4166666667
42919,4166666667
42919,4166666782
因此您至少需要 10000 个滴答才能使添加产生影响。
关于c# - 以微秒为单位的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44879461/