Я ищу способ форматирования времени, включая микросекунды. Я использую класс DateTime, он позволяет (используя свойства) получать данные до miliseconds, что не является enougth. Я пробовал использовать Ticks, но я не знал, как перевести его на микросекунды.
Время С# в микросекундах
Ответ 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");