我想将Ticks转换为TimeSpan。
我需要ConvertToTimeSpan
功能,如下所示。
var ticks = 10000;
TimeSpan ts = ConvertToTimeSpan(ticks); // not working
Console.WriteLine(ts); // expected output --> {00:00:00.0010000}
答案 0 :(得分: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
)。
答案 1 :(得分:3)
您需要.NET Framework中已存在的TimeSpan.FromTicks(Int64)
方法。
此方法使用其他答案中建议的constructor时间跨度。如果您想深入挖掘,可以在reference source code。
中验证答案 2 :(得分:1)
你还没有告诉ConvertToTimeSpan
方法内部发生了什么,无论如何不需要额外的方法来实现这一点,你可以使用TimeSpan
类的构造函数来做这项工作。请查看此Example并尝试使用以下代码:
var ticks = 1;
TimeSpan ts = new TimeSpan(ticks);
Console.WriteLine(ts);