C#时间,以微秒为单位

Bor*_*kov 41 c#

我正在搜索如何格式化时间,包括微秒.我正在使用类DateTime,它允许(使用属性)获取数据直到毫秒,这是不可能的.我尝试使用Ticks,但我不知道如何将其转换为微秒.

Jon*_*eet 87

您可以"ffffff"在格式字符串中使用来表示微秒:

Console.WriteLine(DateTime.Now.ToString("HH:mm:ss.ffffff"));
Run Code Online (Sandbox Code Playgroud)

要将许多刻度转换为微秒,只需使用:

long microseconds = ticks / (TimeSpan.TicksPerMillisecond / 1000);
Run Code Online (Sandbox Code Playgroud)

如果这些对您没有帮助,请提供有关您正在尝试做什么的更多信息.

编辑:我最初乘以ticks1000,以避免在除以TimeSpan.TicksPerMillisecond1000 时失去准确性.然而,事实证明,它TicksPerMillisecond实际上是10,000的常数值 - 所以你可以除以1000没有问题,事实上我们可以使用:

const long TicksPerMicrosecond = 10;

...

long microseconds = ticks / TicksPerMicrosecond;
Run Code Online (Sandbox Code Playgroud)

  • 那不是格式化问题,这是解决问题的方法.你从哪里开始获取数据?如果你想要花多长时间,你应该使用`Stopwatch`类. (2认同)
  • @EdgarsŠturms:秒表是测量*经过时间*的正确答案 - 但是获取"时间"不合适. (2认同)

小智 19

我无法让Johns打到微秒转换工作.以下是我使用刻度线和秒表测量微秒和纳秒分辨率的方法:

Stopwatch sw = new Stopwatch();
sw.Start();

// Do something you want to time

sw.Stop();

long microseconds = sw.ElapsedTicks / (Stopwatch.Frequency / (1000L*1000L));
long nanoseconds = sw.ElapsedTicks / (Stopwatch.Frequency / (1000L*1000L*1000L));

Console.WriteLine("Operation completed in: " + microseconds + " (us)");
Console.WriteLine("Operation completed in: " + nanoseconds + " (ns)");
Run Code Online (Sandbox Code Playgroud)


Jos*_*ved 9

"ffffff"就是你所需要的.

return DateTime.Now.ToString("HH:mm:ss.ffffff");
Run Code Online (Sandbox Code Playgroud)