Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# time in microseconds

Tags:

c#

I am searching how to format time including microseconds. I'm using class DateTime, it allowes (using properties) to get data till miliseconds, which is not enougth. I tried using Ticks, but I didn't know how to translate it to microseconds.

like image 943
Boris Raznikov Avatar asked Jul 30 '09 12:07

Boris Raznikov


3 Answers

You can use "ffffff" in a format string to represent microseconds:

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

To convert a number of ticks to microseconds, just use:

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

If these don't help you, please provide more information about exactly what you're trying to do.

EDIT: I originally multiplied ticks by 1000 to avoid losing accuracy when dividing TimeSpan.TicksPerMillisecond by 1000. However, It turns out that the TicksPerMillisecond is actually a constant value of 10,000 - so you can divide by 1000 with no problem, and in fact we could just use:

const long TicksPerMicrosecond = 10;

...

long microseconds = ticks / TicksPerMicrosecond;
like image 115
Jon Skeet Avatar answered Oct 19 '22 07:10

Jon Skeet


I was unable to get Johns tick to micorosecond conversion to work. Here is how I was able to measure Microsecond and Nanosecond resolution by using ticks and the Stopwatch:

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)");
like image 19
Fredrik Karlsson Peraldi Avatar answered Oct 19 '22 08:10

Fredrik Karlsson Peraldi


"ffffff" is what you need.

return DateTime.Now.ToString("HH:mm:ss.ffffff");
like image 9
Josip Medved Avatar answered Oct 19 '22 08:10

Josip Medved