C#时间,以微秒为单位

时间:2009-07-30 12:44:15

标签: c#

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

4 个答案:

答案 0 :(得分:81)

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

Console.WriteLine(DateTime.Now.ToString("HH:mm:ss.ffffff"));

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

long microseconds = ticks / (TimeSpan.TicksPerMillisecond / 1000);

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

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

const long TicksPerMicrosecond = 10;

...

long microseconds = ticks / TicksPerMicrosecond;

答案 1 :(得分: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)");

答案 2 :(得分:8)

“ffffff”就是你所需要的。

return DateTime.Now.ToString("HH:mm:ss.ffffff");

答案 3 :(得分:0)

是:

return DateTime.Now.ToString("HH:mm:ss.ffffff");

以小时:分钟:秒:微秒的格式显示的整个时间戳记

return DateTime.Now.ToString(".ffffff");

如果您只需要剩余微秒。