以微秒为单位的日期时间 [英] DateTime in Microseconds

查看:47
本文介绍了以微秒为单位的日期时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否将微秒的日期时间值转换为具有精确精度的双精度值?

Is datetime values with microseconds are converted into double with exact precision?

例如.我的日期为 2017 年 7 月 3 日 10:00:00 00 Ticks 636346728000000050.当我得到 42919.4166666667 时,它转换为双倍.同样,我已将 50 个滴答添加到当前日期,即.2017 年 7 月 3 日 10:00:00 00 Ticks 636346728000000100 转换为 double,也获得相同的 double 值,但ticks 值已添加到日期中.

For eg. i have date as 3 July 2017 10:00:00 00 Ticks 636346728000000050. which converted into double as i am getting as 42919.4166666667. As similarly, i have added the 50 Ticks to current date ie. 3 July 2017 10:00:00 00 Ticks 636346728000000100 which converted into double, also getting same double value but the ticks value has added into date.

我被这个方法转换成了double date.ToOADate()

I am converted into double by this method date.ToOADate()

谁能解决这个问题?

提前致谢:)

推荐答案

50 个刻度不能用 OLE 自动化日期表示.这段代码:

50 ticks cannot be expressed in a OLE Automation date. This code:

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 个滴答声才能使添加产生影响.

so you need at least 10000 ticks for the add to have an impact.

这篇关于以微秒为单位的日期时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆