0

我想将 Ticks 转换为 TimeSpan。

我需要一个ConvertToTimeSpan像下面这样的功能。

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

3 回答 3

6

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

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

将 TimeSpan 结构的新实例初始化为指定的刻度数。

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

于 2017-05-31T08:35:47.830 回答
3

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

此方法使用其他答案中建议的时间跨度的构造函数。如果您想深入挖掘,可以在参考源代码中进行验证。

于 2017-05-31T08:36:11.117 回答
1

您还没有告诉方法内部发生了什么ConvertToTimeSpan,无论如何不需要额外的方法来实现这一点,您可以使用TimeSpan类的构造函数来完成这项工作。查看此示例并尝试使用以下代码:

var ticks = 1;
TimeSpan ts = new TimeSpan(ticks);  
Console.WriteLine(ts); 
于 2017-05-31T08:36:51.733 回答