Подтвердить что ты не робот

Время С# в микросекундах

Я ищу способ форматирования времени, включая микросекунды. Я использую класс DateTime, он позволяет (используя свойства) получать данные до miliseconds, что не является enougth. Я пробовал использовать Ticks, но я не знал, как перевести его на микросекунды.

4b9b3361

Ответ 1

Вы можете использовать "ffffff" в строке формата для представления микросекунд:

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

Чтобы преобразовать число тиков в микросекунды, просто используйте:

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

Если это вам не поможет, предоставьте более подробную информацию о том, что вы пытаетесь сделать.

EDIT: я первоначально умножил ticks на 1000, чтобы избежать потери точности при делении TimeSpan.TicksPerMillisecond на 1000. Однако оказывается, что TicksPerMillisecond на самом деле является постоянным значением 10000 - поэтому вы можете разделить на 1000 с нет проблем, и на самом деле мы могли бы просто использовать:

const long TicksPerMicrosecond = 10;

...

long microseconds = ticks / TicksPerMicrosecond;

Ответ 2

Мне не удалось заставить Джонса тикать микроосекундное преобразование на работу. Вот как я смог измерить разрешение Microsecond и Nanosecond, используя тики и секундомер:

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)");

Ответ 3

"ffffff" - это то, что вам нужно.

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