Я делаю программу, в которой мне нужно получить время в миллисекундах. Под временем я имею в виду число, которое никогда не равно самому себе и всегда на 1000 чисел больше, чем было секунду назад. Я пробовал преобразовать DateTime.Now
в a TimeSpan
и получить TotalMilliseconds
от этого ... но слышал, что это не совсем точно.
Есть ли более простой способ сделать это?
c#
datetime
milliseconds
time-precision
сущность
источник
источник
Ответы:
Воспользуйтесь
Stopwatch
классом.Здесь есть полезная информация о его реализации:
Тесты производительности: точное измерение времени работы с помощью System.Diagnostics.Stopwatch
источник
Именно так в
DateTimeOffset
классе реализованы различные методы преобразования Unix (.NET Framework 4.6+, .NET Standard 1.3+):источник
DateTime.Now
не обновляются очень часто), конечно, используйтеdecimal milliseconds = DateTime.Now.Ticks / (decimal)TimeSpan.TicksPerMillisecond;
вместо них.long
тип данных перед миллисекундами. Использованиеint
наверняка переполнится.DateTime.Ticks
Свойство получает количество тиков , которые представляют дату и время.10 000 тиков - это миллисекунда (10 000 000 тиков в секунду).
источник
A single tick represents one hundred nanoseconds or one ten-millionth of a second. There are 10,000 ticks in a millisecond.
Использую следующий класс. Однажды я нашел его в Интернете, и он был признан лучшим СЕЙЧАС () .
Источник неизвестен.
источник
Можете попробовать
QueryPerformanceCounter
родной метод. См. Http://www.pinvoke.net/default.aspx/kernel32/QueryPerformanceCounter.html для получения дополнительной информации. Это то, чтоStopwatch
использует класс.См. Раздел Как получить метку времени точности тиков в .NET / C #? Чтобы получить больше информации.
Stopwatch.GetTimestamp()
дает доступ к этому методу:источник
Stopwatch.GetTimestamp()
фактически предоставляет доступ к этому методу.Я использовал DateTime.Now.TimeOfDay.TotalMilliseconds (на текущий день), надеюсь, это тоже поможет вам.
источник
Используйте
System.DateTime.Now.ToUniversalTime()
. Это переводит ваше чтение в известный справочный миллисекундный формат, который полностью исключает смену дня и т. Д.источник