加入两个DateTime并获得滴答数

时间:2011-05-19 14:32:33

标签: c# datetime

我正在从数据库中检索记录,它有两列。一个用于日期,一个用于时间。

日期如下所示:19/05/2011 00:00:00和时间看起来像这样:01/01/1900 15:28:00这很好,我可以轻松地将它们与Date.Add(Time.TimeOfDay组合在一起,这样就可以19/05/2011 15:28:00

如果我尝试使用CombinedDateTime.Ticks从该DateTime标记中获取“滴答声”,则会给出错误的标记,例如6344141544100000000 - 就好像它没有找到时间。如果我打印出DateTime,它确实显示时间,一切看起来都没问题。

Date = new DateTime(2010, 05, 19);
Time = new DateTime(1900, 01, 01, 15, 45, 00);
Combined = Date.Add(Time.TimeOfDay);
// Combined.ToString() prints the expected 19/05/2011 15:45:00
// Combined.Ticks gives an invalid "tick count", e.g 6344141544100000000

有什么想法吗?

感谢。

3 个答案:

答案 0 :(得分:3)

你误解了Ticks

Ticks是以 100纳秒为单位测量的;每秒有10,000,000个滴答声。

除非你的时间是微秒的分数,否则总是在结尾处为零。

答案 1 :(得分:0)

DateTime是不可变的,当您调用Add时,它会创建一个新的DateTime实例。您是否在原始DateTime上调用Ticks?

答案 2 :(得分:0)

确保在合并时更新对象

Date = Date.Add(Time.TimeOfDay)

Date.Ticks;