c# - 以微秒为单位的日期时间

标签 c# datetime time double precision

是否将具有微秒的日期时间值转换为具有精确精度的 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/

相关文章:

php - 以半小时为增量创建选择列表

python - `No numeric types to aggregate` 滚动总和和 timedelta 类型错误

c - 如何在终端自动执行代码

c# - 从 SQL CE 获取行的选择到 C#

asp.net - mysql 将 varchar 列与日期(现在)进行比较,给出错误的结果。(我无法更改表。)

python - Pandas 的日期时间默认为 1970

javascript new Date() 或 moment.js 解析日期错误

c# - MissingMethodException 全局.asax.cs

c# - 没有 MVC 的 .Net Core 2 路由

c# - 如何使用 .NetOffice 库添加 header