将刻度转换为时间跨度

Convert Ticks to TimeSpan

我想将 Ticks 转换为 TimeSpan。

我需要如下所示的 ConvertToTimeSpan 函数。

var ticks = 10000;
TimeSpan ts = ConvertToTimeSpan(ticks);  // not working
Console.WriteLine(ts);  // expected output --> {00:00:00.0010000}

有一个 TimeSpan(Int64) 构造函数,它接受多个报价:

https://msdn.microsoft.com/en-us/library/zz841zbz(v=vs.110).aspx

Initializes a new instance of the TimeSpan structure to the specified number of ticks.

在 .NET 中,Ticks 总是表示为 Int64,所以你不应该使用 var ticks = 1 因为那是一个隐式的 Int32,所以你最终会使用错误的方法超载。而是指定显式类型声明或长文本值 (var ticks = 1L)。

您需要 .NET Framework 中已经存在的 TimeSpan.FromTicks(Int64) 方法。

此方法使用 constructor of time span as suggested in the other answers. If you want to dig deep you can verify that in the reference source code.

你还没有告诉ConvertToTimeSpan方法内部发生了什么,反正不需要额外的方法来实现这个,你可以使用TimeSpan[=16的构造函数=] 来完成这项工作。看看这个 Example 并尝试使用以下代码:

var ticks = 1;
TimeSpan ts = new TimeSpan(ticks);  
Console.WriteLine(ts);